串口中增加输出发现串口可以接收数据,但是main函数中接收的数据无法显示代码如下
while(1)
{for(times=0;times<100;times++)
{delay_ms(1000);
if(times%2==0){
key1=1;
for(i=0;i<5;i++) {
printf("rs4851%d=%d\r\n",i,rs485buf1[i]);
LCD_ShowxNum(30+i*32,190,rs485buf1[i],3,16,0X80);
}
RS485_Send_Data(rs485buf1,5);
}
if(times%2==1){
key1=2;
for(i=0;i<5;i++){
printf("rs4853%d=%d\r\n",i,rs485buf3[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<key;i++)
printf("rs485%d=%d\r\n",i,rs485buf[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++)
printf("rs4852%d=%d\r\n",i,rs485buf[i]);
LCD_ShowxNum(30+i*32,310,rs485buf[i],3,16,0X80);
}
t++;
if(t==20)
{
LED0=!LED0;
t=0;
LCD_ShowxNum(30+48,150,times,3,16,0X80);
} //
}
}
}
串口程序如下:
void USART2_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
res =USART_ReceiveData(USART2);
printf("res=%d\r\n",res);
if(RS485_RX_CNT<64)
{
RS485_RX_BUF[RS485_RX_CNT]=res;
RS485_RX_CNT++;
}
|