本帖最后由 stm32zzq 于 2017-5-15 15:14 编辑
各位,本人采取的是RS485是收发自适应的电路,主机以60ms为一个周期,并且以固定的格式如7个字节的{0xF5,0x00,0xC2,0x03,0xC1,0x00,0x01}发送给从机,但是从机有时候却只收到1个,或者5个,或者6个的字节,如{0xC2,0x03,0xC1,0x00,0x01} {0x00,0xC2,0x03,0xC1,0x00,0x01}的格式,请问各路大神如何解决丢数据的情况,485发送函数为如下:
void RS485_Send(uint8_t *Buffer, uint8_t Length)
{
while(Length != 0)
{
//if(*Buffer <= 9)*Buffer += '0';//把0--9的数字转换成'0'--'9',方便用于串口显示,实际过程中加入这句会导致出错
RS485PORT->TDR = *Buffer;
while(!((RS485PORT->ISR)&(1<<7)));//等待发送完成
Buffer++;
Length--;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>