你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
串口收发数据遇到的问题
[复制链接]
逸云剑
提问时间:2016-6-23 17:54 /
我的串口中断接收,查询(带延时)发送。使用HAL库。
遇到了一个问题,通过各种方法,暂时应该算是解决了,但是我不知道这样做的原因是什么。。。还请大家帮我分析一下。
现象很简单:
两条查询发送数据的时间间隔太短的话,有时会造成接收中断使能的标志位被清除,从而进不了接收中断函数,但是查询发送的数据是没有问题的。
解决办法:
我把发送也改成中断方式以后这个问题暂时还没有出现。
问题:
不明白为什么发送的方式为什么会对接收中断标志位产生影响。
接收中断标志在进中断函数时清除,出中断函数之前置位。那么也就是说进中断函数处理完数据把中断标志位清除了,然后没有执行打开中断就跳出了中断函数。
实在理解不了,还请大家指导一下!
赞
0
收藏
0
评论
4
分享
发布时间:2016-6-23 17:54
举报
请先
登录
后回复
4个回答
逸云剑
回答时间:2016-6-24 09:55:26
a0a.1 32b0c
直接用的HAL库函数HAL_UART_Transmit();后来改成HAL_UART_Transmit_IT();就可以了,那个问题就不出现了。分析了一下这两个函数,里面没有会影响到接收中断的内容啊
赞
0
评论
回复
支持
反对
废鱼
回答时间:2016-6-24 16:50:09
a0a.1 32b0c
楼主实际测试一下,是不是因为接收溢出标志位导致的。
赞
0
评论
回复
支持
反对
逸云剑
回答时间:2016-6-24 17:38:29
a0a.1 32b0c
关于接收数据溢出处理的回调函数没有重定义,也就是说即使出现了溢出,也不会执行任何操作,在出中断之前还是会打开接收中断。
赞
0
评论
回复
支持
反对
逸云剑
回答时间:2016-6-24 17:41:35
a0a.1 32b0c
就是不明白为什么在中断函数中关掉了接收中断,在出中断函数前为什么没有执行打开中断的操作。
难道是处理完数据之后,由于某些原因,没有打开接收中断,就直接就跳出中断函数了?什么问题会导致这种情况呢?
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
难道是处理完数据之后,由于某些原因,没有打开接收中断,就直接就跳出中断函数了?什么问题会导致这种情况呢?