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

HAL_UART_Receive_IT 这个接收中断函数是在哪里调用 ??

[复制链接]
hpdell 提问时间:2015-12-26 09:51 /

请教下,关于这个 HAL_UART_Receive_IT  接收中断函数,是在主循环里面调用还是中断 HAL_UART_IRQHandler 里面调用 ???
收藏 1 评论15 发布时间:2015-12-26 09:51

举报

15个回答
liuyu-419812 回答时间:2015-12-26 10:02:12
这个函数只是用来开启中断接收的,接收完成后,中断函数会调用相应的接收回调函数
hpdell 回答时间:2015-12-26 12:28:09
liuyu-419812 发表于 2015-12-26 10:02
这个函数只是用来开启中断接收的,接收完成后,中断函数会调用相应的接收回调函数 ...

这个刚刚试了一下,需要在主循环里面不停的调用才行,但是如果主循环程序比较大,此时如果串口接收的数据量比较大,就貌似不怎么好了,接收数据会丢失,而且程序貌似会假死,
liuyu-419812 回答时间:2015-12-26 13:34:29
hpdell 发表于 2015-12-26 12:28
这个刚刚试了一下,需要在主循环里面不停的调用才行,但是如果主循环程序比较大,此时如果串口接收的数据 ...

在主循环之前调用一次,开启中断接收,然后在中断回调函数里调用,这样接收完成一次后,在开启下一次
党国特派员 回答时间:2015-12-26 13:46:47
楼上的说的才是正确的。 null.png
回答时间:2015-12-26 13:57:17
HAL_UART_Receive_IT 开启以后,可以通过判断RxXferCount个数,来判断是否接收完成。RxXferCount=0时,接收完成数据,这时处理数据,再重新开启接收。
hpdell 回答时间:2015-12-27 16:53:10
本帖最后由 hpdell 于 2015-12-27 16:54 编辑
安 发表于 2015-12-26 13:57
HAL_UART_Receive_IT 开启以后,可以通过判断RxXferCount个数,来判断是否接收完成。RxXferCount=0时,接收 ...

你好,你说的这个方法,是在已知的情况下,但是如果我不知道串口有多少个数据来时,该如何是好啊 ????

还有感觉这个 串口中断接收数据,数据量大了后,实时性貌似没有那么好了啊 ?? 有什么比较好的方法没有 ?


anobodykey 回答时间:2015-12-28 12:03:19
HAL_UART_Receive_IT一般除第一次在主函数调用后其他都是在中断函数调用的,且是每次接收一个字节,可以参考下博客:http://blog.csdn.net/anobodykey/article/details/44959527
yushan210 回答时间:2015-12-28 13:49:59

HAL_UART_Receive_IT();
do{
延时;}while(接收完毕);
逍遥李 回答时间:2015-12-28 14:34:44
一般都是一个字节接收然后中断中调用再次接收
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版