你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
难道是处理完数据之后,由于某些原因,没有打开接收中断,就直接就跳出中断函数了?什么问题会导致这种情况呢?