雖然你的代碼只有一點,但卻很亂
UartBusy這個要在啟動的時候先清除,不然就會一直卡在那不動了
你這個中斷不需要設置什么的了,默認的就行
串口只會被打斷而已,外部中斷完成之后,中斷控制權還是會交給串口的
不應該在,外部中斷中發送串口
當你串口發送一半的時候,外部中斷被觸發,進入中斷,又發送一次串口,你這覺得這很亂嗎?
1,串口發送要在主程序中發送
2,外部中斷觸發之后,也就是按鍵按下,不是馬上發送,而進入中斷之后,設置一個標志位,表示按鍵按下了,這個標志要在串口發送完成之后再清除
不然的話,按鍵抖動,就會產生串口不斷的發送數據比如這樣
void Int0_isr() interrupt 0 //外部中斷0
{
if(!P32) {
key_press=1; //按下按鍵
key_100ms=100;//可以用做一些延時之類的,比如這個是100mS,串口發送完成之后,100mS再次按鍵是無用的
}
IE0=0;
}
key_press在串口發送之后再清除,
|