STM32 RS485通讯接收数据的前两个字节错误或者说被覆盖

dningndsc 2017-03-14 04:33:35
我做STM32 RS485通讯测试时发现用串口调试助手发送数据时前两个字节的数据STM32接受不到,比如我用串口调试助手发送00 01 00 03 00 02给STM32,STM32收到的是00 03 00 02 前两个数没了!!
如果我发送11 11 00 03 00 02那么STM32缓冲区里接受的是03 00 02
我晕啊!这是咋回事儿?那个大侠能帮解答下?

void USART3_IRQHandler(void)//串口2中断服务程序
{
u8 res;
u8 err;
if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET)
{
if(USART_GetFlagStatus(USART3,USART_FLAG_NE|USART_FLAG_FE|USART_FLAG_PE))
err=1;//检测到噪音、帧错误或校验错误
else
err=0;
res=USART_ReceiveData(USART3);
if(err==0)
{
RS485_RX_BUFF[RS485_RX_CNT]=res;
RS485_RX_CNT++;
}
}
}
...全文
1650 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JARVIS_TONY 2020-03-26
  • 打赏
  • 举报
回复
查那个HSPi协议就知道了,esp这玩意需要cmd和add在头几个字节,他的buff收发公用
Glen_hsu 2019-12-27
  • 打赏
  • 举报
回复
换个串口助手! 你用了MODBUS专用串口助手了,把你的前面当地址了,参与解析,但没当数据显示!!! 哈哈哈,我也发过这个错误,没注意。整了3天才发现。
1958339256 2019-12-10
  • 打赏
  • 举报
回复
可能是发送函数有问题
Millyliuyj 2018-12-17
  • 打赏
  • 举报
回复
有时错误在硬件上,特别是RS485芯片。从某宝上卖的开发板,485芯片可能是劣质品。我自己有过经历,调试了一天半,最后确定是RS485芯片问题,买了颗新的,还上去,问题马上解决。 解决完心里有些小激动,马上回来给大家汇报下,以免有同样问题的筒子们再走我的冤枉路。
失散糖 2017-03-18
  • 打赏
  • 举报
回复
STM32连接的串口芯片,拿示波器抓抓那些管脚上的波形先
Acuity. 2017-03-18
  • 打赏
  • 举报
回复
rs232芯片也许有问题,我试过批量生产的板子经常有很多无法正常通信,232芯片好多假货。有时调试一个电路板,死活不正常,就是不怀疑芯片是坏的,结果一换芯片马上正常。

27,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧