|
|
使用屏幕DMG48270C043_03WTR做显示,控制器用的是GD32F103C8T6,现在问题是,控制器发送给屏幕数据一切正常,所有变量都能正确显示。但控制器一直接收到屏幕发送过来的信息,即使不做任何操作,控制器串口一直也能接收到无规律的信息,会把正常操作的数据流都给冲掉。串口接收中断的程序如下。
请问这个可能是什么原因造成的。屏幕与控制器是直连的,没有经过电平转换。
void USART1_IRQHandler(void)//串口接收中断
{
unsigned char i;
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//接收中断
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); // 清中断标志
for(i=0;i<RXD_LCD_MAX_LEN-1;i++)
Usart1_RxBuffer = Usart1_RxBuffer[i+1];
Usart1_RxBuffer[RXD_LCD_MAX_LEN-1] = USART_ReceiveData(USART1);
if((Usart1_RxBuffer[0]==FRAME_START_H)&&(Usart1_RxBuffer[1]==FRAME_START_L))//帧头正确,进行解码
{
if(Usart1_RxBuffer[4]==LCD_ADD_H)//地址高位也正确
{
switch (Usart1_RxBuffer[5])//根据地址低位判断需要更新的变量
{
case LCD_ADD_SET_V: SetVChangeFlag = ON;
break;
case LCD_ADD_PUMP_S: PumpSpeedChFlag = ON;
break;
case LCD_ADD_O_ENABLE:OutChangeFlag = ON;
break;
default:break;
}
}
}
}
}
|
|