串口连续接收多个数据
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready?
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
if(U0RXBUF!=0xff)
{
RX[num]=U0RXBUF;
num++;
}
else
{
num=0;
}
if(RX[num]=='O')
{
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
Disp1Char(8,0,'O');
}
if(RX[num]=='A') //如果接收到字符A,0x41为A的十六进制表示形式
{
LcdWriteCommand(0x01, 1); //显示清屏
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
Disp1Char(8,0,'A'); //在1602上显示字符C
}
if(RX[num]=='B') //如果收到字符B
{
LcdWriteCommand(0x01, 1); //显示清屏
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
Disp1Char(8,0,'B'); //在1602中显示字符B
}
if(RX[num]=='C') //如果收到字符C,说明C接收器收到声音
{
LcdWriteCommand(0x01, 1); //显示清屏
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
Disp1Char(8,0,'C'); //在1602上显示字符C
}
if(RX[num]=='D') //如果收到字符D,说明AC都收到声音
{
LcdWriteCommand(0x01, 1); //显示清屏
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
Disp1Char(8,0,'D');
}
if(RX[num]=='E') //如果收到字符E,说明BC都收到声音
{
LcdWriteCommand(0x01, 1); //显示清屏
DispNChar(1,0,6,tishi); //最开始在液晶上显示提示信息
Disp1Char(8,0,'E');
}
}
这样为什么会显示乱呢 --------------------编程问答-------------------- DispNChar
Disp1Char
才是关键吧。代码呢?
补充:.NET技术 , C#