两块板子单独通讯正常,接一起就只能接收到一组数据,另一组数据可以被从机接收主机接收不到,主机代码如下,大佬们能不能帮忙看下程序有没有啥问题
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);
}
}
}
@正点原子
单独开发板和你的一个板子,能通信么?
一周热门 更多>