该RS485是收发自适应的电路,请问如何解决接收时数据丢失的问题

2019-08-19 18:16发布

本帖最后由 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--;
        }

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。