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