OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4268|回复: 3

关于串口中断的这里还是不太理解

[复制链接]

50

主题

94

帖子

0

精华

高级会员

Rank: 4

积分
556
金钱
556
注册时间
2020-3-6
在线时间
77 小时
发表于 2021-11-26 15:30:50 | 显示全部楼层 |阅读模式
1金钱
原子对串口中断处理程序进行了调整,不使用数据处理回调函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart),而是直接将处理机制写在中断服务函数里, 中断.png 我不理解的是,这段代码已经将数据接收并进行了处理,为什么结束的时候又再次调用HAL库中断处理共用函数HAL_UART_IRQHandler(&UART1_Handler)(图片里红线圈出来的部分),难道是要调用UART_Receive_IT函数重新接收一次,最后再调用一次空的回调函数?这有什么意义呢?感觉是重复了,谁能帮忙解释一下,谢谢!

最佳答案

查看完整内容[请看2#楼]

可以参考一下这个链接看一下:https://blog.csdn.net/qq_36226810/article/details/82787905
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1023
金钱
1023
注册时间
2019-9-21
在线时间
269 小时
发表于 2021-11-26 15:30:51 | 显示全部楼层
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2020-8-19
在线时间
335 小时
发表于 2021-11-28 11:49:15 | 显示全部楼层
不需要回调的话可以不要,这个代码是你自己写的吧,原子的我记得都是用到回调的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2021-12-23
在线时间
4 小时
发表于 2022-4-17 17:20:00 | 显示全部楼层
我和你有有同样的疑问,使用HAL_UART_IRQHandler()时调用的HAL_UART_RxCpltCallback()应该是空的才对,不过HAL_UART_IRQHandler()可以清除中断标志位,但是读写USART1->DR时本身就可以清除标志位了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 21:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表