我现在使用最简单的51单片机做串口通信实验,起初我是用单片机不断的向PC机发送A~Z这26个英文字母,没有问题,PC机都能收到,没有乱码,很正常。。
但是当我使用中断的时候,每从PC机收到一个字节,便在中断函数中立即将这个字符再回发给PC机,每次发送一个字节可以,但是当PC机向下一起发送超过一个字节的时候,单片机就返回不了了,是一些没有规律的乱码,请问这是怎么回事啊?
是不是单片机处理不过来两个字节的内容啊?
中断函数如下:
void uart0_isr(void interrupt 0{
char temp;
if(RI0==1){
RI0=0;
temp=SBUF0;
uart0_send_byte(temp);
}
}
串口发送函数如下:
void uart0_send_byte(char ch){
SBUF0=ch;
while(!TI0);
TI0=0;
} |