您的位置:首页 > 其它

关于串口转485通信中丢字段的问题

2017-02-06 14:15 246 查看
很多初学者都知道探索者开发板,里面有很多的代码资源,在485通讯这一章内,我在调用原函数的时候发现了个问题,从机返回的数据包在主机接收端少了一个包头,即一个字节的数据,本人参考的是库函数版的代码,通过修改一下代码可以解决该问题:

void RS485_Send_Data(u8 *buf,u8 len)

{
u8 t;
GPIO_SetBits(GPIOD,GPIO_Pin_10);

  for(t=0;t<len;t++)

{
 while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);

    USART_SendData(USART3,buf[t]); //·¢ËÍÊý¾Ý
}  

// while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);
 
GPIO_ResetBits(GPIOD,GPIO_Pin_10);

}

将while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); 
 注释即可解决,该语句等待状态,没有及时将485切换到接收状态,数据可能接收不完整
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: