當前位置:編程學習大全網 - 網站源碼 - 用串口調試助手給單片機發數據再將得到的數據返回給上位機,可是我做的中斷只能顯示2個字符,請高手解答?

用串口調試助手給單片機發數據再將得到的數據返回給上位機,可是我做的中斷只能顯示2個字符,請高手解答?

還能打出亮個字符?真不容易,怎麽搞出來的呀,妳的接收過程都沒完成,怎麽打出來的呢?

void Receive_Uart() interrupt 4

{

ES=0;

if(RI&&(a<=string_max))

{

RI=0;

buffer_uart[a++]=SBUF;

if(SBUF=='\r'||SBUF=='\n')//為了壓縮空間

a--;

if(buffer_uart[a]=='\0'||a>=string_max-1)

{// lcd(buffer_uartdelay(10););delay(10);

flag=1; }//收完的標識

if(a>string_max)

ES=0;

}

}

妳進了串口中斷就關閉了中斷使能ES,但直到中斷結束也沒有再次打開中斷,也就是說收到了壹個字符後就再也無法進入串口中斷,妳壹***就收到壹個‘E’,還沒機會打開flag標誌來啟動發送,居然能在串口收到“ER”,實在不懂。

1.建議妳在初始化程序中將flag和buffer_uart數組初始化為0。

2.中斷程序的最後要加上

ES=1;

位置就在最後壹個括號之前,改了先看看效果怎麽樣吧。

  • 上一篇:速評助手需要買小號嗎
  • 下一篇:麻仁菠菜家常做法,正宗麻仁菠菜怎麽做
  • copyright 2024編程學習大全網