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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版