我正在使用PIC18F,並試圖通過超級終端發送數據。當我每半秒鐘按一個鍵以慢速發送數據時,它會收到數據並正確回顯,但當我以更快的速度開始按鍵時,MCU會鎖定。不知道是什麼原因造成的。如果快速發送數據,PIC18F鎖定
while(index<length){
while(PIR1bits.RCIF==0); // Wait till char recieved
sendData(str2,9); // confirm reception
Delay1KTCYx(5); //delay because without it, it messes up.
rxData[index]= RCREG; //char array
index++;
}
波特率是2400在PIC和超級終端上。
這是我們的接收循環。 sendData只是我們發送的「接收」調試代碼。這是我們如何知道它何時凍結的。
它不會每次都以相同數量的循環凍結,而只是我們輸入數據的速度有多快。
你怎麼知道PIC是鎖定的?代碼來自您的ISR?或者當你收到一個字節時你有額外的ISR嗎? – AndreKR 2010-11-13 23:42:30
這是在中斷服務程序中?不要循環,不要發送,不要拖延。 – 2010-11-13 23:52:48