我正在使用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