完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
这两天在做LoRa透传模块,发现USART2用起来有问题,不清楚是我哪里没配置好:
现象: 我接收的数据包最大57个字节,所以我用HAL_UART_Receive(&Sensor_UartHandle,receive_tab,64,50);去固定收64字节,50ms的timeout时间,但每次都是接收正确几包数据后,就出错了,一旦USART发生错误了,就再也接收不到数据了: 从图中可以看出: 前面的3包数据没问题,第四包就没收完整了,到了第5包就只收了一个字节,后面再也收不到数据了, 我也在时时读此USART的错误状态: uart_status = HAL_UART_GetError(&Sensor_UartHandle); 但是从打印来看,根本就没有错误发送,就是*pData++ = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);读不到数据。 我自然的想到修改timeout时间,从50改到500,情况依旧,在网上看到有人不停的去初始化USART,我就在每次接收一次之后就去init下此USART,我以30ms一包的频率往芯片里发也没问题了。 不知道各位遇到这样的问题没,究竟是什么原因导致串口收不到数据呢? |
|
相关推荐
4个回答
|
|
|
会不会是ORE溢出中断的问题?
|
|
|
|
|
|
你可以看一下HAL_UART_Receive的返回值,这或许能告诉你一些信息
|
|
|
|
|
|
我从50ms到500ms都试过,现象是一样的。
|
|
|
|
|
|
这个没用,永远是timeout. |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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-1 20:22 , Processed in 0.937024 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
283