最近我在弄一个项目,其中需要一个串口通信的,但是我写的程序不用中断接收的时候可以接收字符串,但用中断后,我发觉自己不知道怎样去写接收一个字符串的代码。而且也忘了咋判断它是否接收完毕!!我的本意是要通过串口发送一个串到PC机,然后PC机正确接收后会返回“OK”两个字符。就是接收“OK”这个串口中断接收子程序不会写,哪位高手能帮帮忙呀!!!
一下是我写的串口中断接收函数,谁能够帮我改一下,我想要一个接收多个字符但不确定且在一个范围内的代码。主要是我不知道如何判断是否接收字符串完毕,所以在通过LCD屏幕显示的时候总是不知如何下手。
//------------串口中断接收----------------
void uart_interrupt() interrupt 4
{
ES = 0;
if(RI)
{
RI = 0;
InStr[InStrLoc] = SBUF;
InStrLoc++;
}
else
TI = 0;
ES = 1; //允许串口中断
return;
}
//---------------------------------------
//主函数
//-----------------------------------------
void main()
{
int i;
lcd_disp0();
init_serialcomm(); //串口初始化
clrbit=1; //置清屏标志位
LCD_clear(); //清屏
putnstr(InStr, sizeof(InStr)/sizeof(char));
for(i=0;i<MAXLEN;i++)
InStr='\0';
while(1)
{
delayx1ms(500);
if(InStrLoc >= MAXLEN)
{
for(i=0;i<MAXLEN;i++)
{
LCD_write_char(InStr);
}
putnstr(InStr, sizeof(InStr)/sizeof(char));
InStr[0] == '\0';
InStrLoc = 0;
}
}
}
|
|