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

[复制链接]
jiajs 发表于 2023-4-2 12:34 | 显示全部楼层
用 HAL_UART_Receive_IT()函数并配置对应的NVIC模块、调用对应的中断服务函数并且钩上对应的回调。
wenfen 发表于 2023-4-2 12:36 | 显示全部楼层
它的功能是设置接收中断的参数,以及使能接收中断。
bqyj 发表于 2023-4-2 12:38 | 显示全部楼层
HAL库太辣鷄了。
lizye 发表于 2023-4-2 12:42 | 显示全部楼层
需要在主循环之前手动开启接收中断。
bqyj 发表于 2023-4-2 13:20 | 显示全部楼层
只有手动开启之后才能进入中断。
langgq 发表于 2023-4-2 13:22 | 显示全部楼层
是不是其他的中断在处理数据?              
bqyj 发表于 2023-4-2 13:23 | 显示全部楼层
是不是要清除中断呀?
jiajs 发表于 2023-4-2 13:24 | 显示全部楼层
你需要在中断代码重新启动中断。
langgq 发表于 2023-4-2 13:26 | 显示全部楼层
HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1) 语句相当于打开这个入口,经测试如果去掉这句的话,再发送字符是不会进入HAL_UART_IRQHandler语句的。
jiajs 发表于 2023-4-2 13:27 | 显示全部楼层
HAL_UART_Receive_IT 不要放在HAL_UART_TxCpltCallback 里,放在主函数里,在初始化的时候调用,总之要在HAL_UART_Transmit_IT之前。
zhanghqi 发表于 2023-4-2 13:29 | 显示全部楼层
启动有问题吗、              
lizye 发表于 2023-4-2 13:30 | 显示全部楼层
是不是要重新使能中断
langgq 发表于 2023-4-2 13:33 | 显示全部楼层
手动清除下中断试试
zhenykun 发表于 2023-4-2 13:34 | 显示全部楼层
__HAL_LOCK 这个没哟遇到过。
wyjie 发表于 2023-4-2 13:35 | 显示全部楼层
直接调用固定的函数就行。              
Henryko 发表于 2023-4-2 15:07 | 显示全部楼层
是不是需要手动清除中断标志位啊
SantaBunny 发表于 2023-5-5 22:52 | 显示全部楼层
可能是REC缓存溢出了
huangchui 发表于 2023-5-16 19:44 | 显示全部楼层
直接调用固定的函数就行。              
lium 发表于 2023-5-16 19:46 | 显示全部楼层
__HAL_LOCK 这个没哟遇到过。
zhanglli 发表于 2023-5-16 19:47 | 显示全部楼层
使能串口接收中断。               
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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