你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

串口收发数据遇到的问题

[复制链接]
逸云剑 提问时间:2016-6-23 17:54 /
我的串口中断接收,查询(带延时)发送。使用HAL库。
遇到了一个问题,通过各种方法,暂时应该算是解决了,但是我不知道这样做的原因是什么。。。还请大家帮我分析一下。
现象很简单:
两条查询发送数据的时间间隔太短的话,有时会造成接收中断使能的标志位被清除,从而进不了接收中断函数,但是查询发送的数据是没有问题的。
解决办法:
我把发送也改成中断方式以后这个问题暂时还没有出现。
问题:
不明白为什么发送的方式为什么会对接收中断标志位产生影响。
接收中断标志在进中断函数时清除,出中断函数之前置位。那么也就是说进中断函数处理完数据把中断标志位清除了,然后没有执行打开中断就跳出了中断函数。
实在理解不了,还请大家指导一下!

收藏 评论4 发布时间:2016-6-23 17:54

举报

4个回答
逸云剑 回答时间:2016-6-24 09:55:26
直接用的HAL库函数HAL_UART_Transmit();后来改成HAL_UART_Transmit_IT();就可以了,那个问题就不出现了。分析了一下这两个函数,里面没有会影响到接收中断的内容啊
废鱼 回答时间:2016-6-24 16:50:09
楼主实际测试一下,是不是因为接收溢出标志位导致的。
逸云剑 回答时间:2016-6-24 17:38:29
关于接收数据溢出处理的回调函数没有重定义,也就是说即使出现了溢出,也不会执行任何操作,在出中断之前还是会打开接收中断。
逸云剑 回答时间:2016-6-24 17:41:35
就是不明白为什么在中断函数中关掉了接收中断,在出中断函数前为什么没有执行打开中断的操作。
难道是处理完数据之后,由于某些原因,没有打开接收中断,就直接就跳出中断函数了?什么问题会导致这种情况呢?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版