两块板子和探索板485通讯数据接收不到

2019-07-20 07:04发布

两块板子单独通讯正常,接一起就只能接收到一组数据,另一组数据可以被从机接收主机接收不到,主机代码如下,大佬们能不能帮忙看下程序有没有啥问题
int main(void)
{
        u8 key;
  u8 key1;
        u8 i=0,t=0;
        u8 cnt=0;
        u8 rs485buf1[5]={3,3,3,3,3};
        u8 rs485buf[5]={0,0,0,0,0};
       
        u8  rs485buf3[5]={2,2,2,2,2};
        //u8 rs485buf2[5]={0,0,0,0,0};       
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);  
        uart_init(115200);       
       
        LED_Init();                                       
        LCD_Init();                                       
        KEY_Init();                                
        RS485_Init(9600);               
        POINT_COLOR=RED;
        LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
        LCD_ShowString(30,70,200,16,16,"RS485 TEST");       
        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(30,110,200,16,16,"2014/5/7");       
        LCD_ShowString(30,130,200,16,16,"KEY0:Send");   

        POINT_COLOR=BLUE;          
        LCD_ShowString(30,150,200,16,16,"Count:");                       
        LCD_ShowString(30,170,200,16,16,"Send Data:");               
       
        LCD_ShowString(30,210,200,16,16,"Send Data2:");               

        LCD_ShowString(30,250,200,16,16,"Receive Data:");
       
LCD_ShowString(30,290,200,16,16,"Receive Data2:");       
        while(1)
        {
                key=KEY_Scan(0);
                if(key==KEY2_PRES)
                        {
                                key1=1;
                                for(i=0;i<5;i++)
                                        {
                                                LCD_ShowxNum(30+i*32,190,rs485buf1[i],3,16,0X80);
                                        }
                                RS485_Send_Data(rs485buf1,5);                                                  
                        }                        
                if(key==KEY1_PRES)
                        {
                                key1=2;
                                for(i=0;i<5;i++)
                                        {
                                                LCD_ShowxNum(30+i*32,230,rs485buf3[i],3,16,0X80);       
                                        }
                                RS485_Send_Data(rs485buf3,5);                                                  
                        }                 
                RS485_Receive_Data(rs485buf,&key);
                if(key1==1&&key)
                        {
                                key1=0;
                                if(key>5)key=5;
                          for(i=0;i<key1;i++)LCD_ShowxNum(30+i*32,270,rs485buf[i],3,16,0X80);       
                        }
                if(key1==2&&key)
                        {key1=0;
                                if(key>5)key=5;
                          for(i=0;i<key;i++)LCD_ShowxNum(30+i*32,310,rs485buf[i],3,16,0X80);
                        }
                t++;
               
                if(t==20)
                {
                        LED0=!LED0;
                        t=0;
                        cnt++;
                        LCD_ShowxNum(30+48,150,cnt,3,16,0X80);       
                }          
        }   
}



@正点原子

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