一下是我寫的串口中斷接收函數,誰能夠幫我改一下,我想要一個接收多個字符但不確定且在一個范圍內的代碼。主要是我不知道如何判斷是否接收字符串完畢,所以在通過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[i]='\0';
while(1)
{
delayx1ms(500);
if(InStrLoc >= MAXLEN)
{
for(i=0;i<MAXLEN;i++)
{
LCD_write_char(InStr[ i]);
}
putnstr(InStr, sizeof(InStr)/sizeof(char));
InStr[0] == '\0';
InStrLoc = 0;
}
}
}