完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
大家的void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)这个接收完成回掉函数可以设置断点吗hal中断接收我理解只有
1,配置中断 2,在主函数中调用一次HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)开启标志位; 3,编写HAL_UART_RxCpltCallback函数 我也只做了这几步,进入调试发现这个回掉函数不仅没起作用,连断点都设置不了,这是为什么呢? |
|
相关推荐
28个回答
|
|
|
不会帮顶。。。。
|
|
|
|
|
|
这个还真不清楚,断点调试用的很少
|
|
|
|
|
|
可以设置的,断点设置不了,可能是你配置不对,导致回调函数没有被调用
|
|
|
|
|
|
嗯 感觉是回调函数没有调用 被编译器优化了
|
|
|
|
|
|
1:到串口的msp初始化函数中看看是否打开了串口中断
2:确定HAL_UART_Receive_IT是否被调用; 3:确定串口是否真的能接受到数据。 在HAL_UART_RxCpltCallback函数中再次调用HAL_UART_Receive_IT函数 |
|
|
|
|
|
用过,之前是用串口中断模式接收一个字节的数据,回调函数里做帧头判断,然后再开启接收下一个字节。
结果只接收了第一个字节,然后就进不了回调函数了,后来调试判断出是数据溢出了。是因为接收第一个字节后,回调函数处理部分太大了,还没处理完下一个数据就来了。 后来我改成空闲中断。 |
|
|
|
|
5616asaqwq 发表于 2019-1-28 11:53 HAL_NVIC_SetPriority(USART3_IRQn, 0, 2); HAL_NVIC_EnableIRQ(USART3_IRQn); 配置中断应该只有两句代码,是在HAL_UART_MspInit中调用? |
|
|
|
|
谦谦三君子 发表于 2019-1-28 12:05 嗯 看了许多留言 说这个回调函数效率太低了 |
|
|
|
|
60user171 发表于 2019-1-28 12:12 你可以追踪下代码看看有没有被执行到 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
也许进入了串口接收错误处理回调函数。
|
|
|
|
|
|
本帖最后由 wenyangzeng 于 2017-1-4 13:20 编辑
这个HAL USART 需要在主循环函数中不断调用HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE),才能响应中断。这与查询方式有何区别? 令人费解!! |
|
|
|
|
|
支持一下
|
|
|
|
|
ctwewer 发表于 2019-1-28 13:19 只要再main中调用一次,然后在回调函数中调用 就好了 |
|
|
|
|
|
可以设置的,断点设置不了,可能是你配置不对,导致回调函数没有被调用
|
|
|
|
|
|
追踪一下
|
|
|
|
|
|
找到问题了 void USART3_IRQHandler(void)
{ HAL_UART_IRQHandler(&huart3); } 如果在cube中设置了nvic的话这个函数会在-it.c里面自动写好 如果cube中没有设置nvic的话 这个函数要自己写 才能开启中断 |
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2797 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2403 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2276 浏览 0 评论
2388 浏览 1 评论
1637 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:58 , Processed in 0.981126 second(s), Total 78, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1975