[STM32F1] Cubemx hal 库 HAL_UART_Receive_IT 的死锁问题

[复制链接]
zhanghqi 发表于 2023-5-16 19:49 | 显示全部楼层
这个需要清楚中断吧              
zhanglli 发表于 2023-5-16 19:58 | 显示全部楼层
估计是高频数据速度太快了吧。
zhenykun 发表于 2023-5-16 20:00 | 显示全部楼层
有没可能是REC缓存溢出了。
huwr 发表于 2023-5-16 20:01 | 显示全部楼层

接收的数据频率和速度是多少?
zhuhuis 发表于 2023-5-16 20:04 | 显示全部楼层
是不是要清除中断啊?
xxmmi 发表于 2023-5-16 20:06 | 显示全部楼层
你的代码在哪里呢?              
huangchui 发表于 2023-5-16 20:08 | 显示全部楼层
在回调函数最后需要再次开启中断!!否则只能执行一次!!
zhuhuis 发表于 2023-5-16 20:10 | 显示全部楼层
http://www.stm32cube.com/article/74
zhuhuis 发表于 2023-5-16 20:12 | 显示全部楼层
库函数 printf使用dma吗  
yszong 发表于 2023-5-16 20:14 | 显示全部楼层
是不没有清除中断?
yszong 发表于 2023-5-16 20:16 | 显示全部楼层
用 HAL_UART_Receive_IT()函数并配置对应的NVIC模块、调用对应的中断服务函数并且钩上对应的回调。
zhuhuis 发表于 2023-5-16 20:18 | 显示全部楼层
它的功能是设置接收中断的参数,以及使能接收中断。
huangchui 发表于 2023-5-16 20:20 | 显示全部楼层
HAL库太辣鷄了。
houcs 发表于 2023-5-16 20:25 | 显示全部楼层
需要在主循环之前手动开启接收中断。
wuhany 发表于 2023-5-16 20:26 | 显示全部楼层
只有手动开启之后才能进入中断。
jiahy 发表于 2023-5-16 20:28 | 显示全部楼层

是不是其他的中断在处理数据?              
lizye 发表于 2023-5-16 20:30 | 显示全部楼层
是不是要清除中断呀?
guoyt 发表于 2023-5-16 20:31 | 显示全部楼层
你需要在中断代码重新启动中断。
zhuww 发表于 2023-5-16 20:34 | 显示全部楼层
HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1) 语句相当于打开这个入口,经测试如果去掉这句的话,再发送字符是不会进入HAL_UART_IRQHandler语句的。
zhuhuis 发表于 2023-5-16 20:35 | 显示全部楼层
HAL_UART_Receive_IT 不要放在HAL_UART_TxCpltCallback 里,放在主函数里,在初始化的时候调用,总之要在HAL_UART_Transmit_IT之前。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部