单片机串口接收中断老是接收到00 00 00 00
Sendstring("Receiving ............");
Sendstring("----------------------");
void revdata(void) interrupt 4
{
unsigned char temp;
while(RI==0); //if(RI==0)
//return; //
RI = 0;
temp = SBUF;
Sendchar(temp);
}
上面的程序在STC的串口上,接收的时候不会一直接收 00 00 00 00 00 ........
void revdata(void) interrupt 4
{
unsigned char temp;
if(RI)
RI = 0;
temp = SBUF;
Sendchar(temp);
}
上面的程序在STC的串口上,接收的时候会一直接收 00 00 00 00 00 ........
该中断程序的结构有问题,单片机的中断是根据SBUF中是否存在数据来中断的,SBUF中存在“R”数据(Sendstring("Receiving ............");
void revdata(void) interrupt 4
{
unsigned char temp;
temp = SBUF;
Sendchar(temp);
} 一直在往外发送“R”
所以必须要进行限制,如下
void revdata(void) interrupt 4
{
unsigned char temp;
if(RI)
{
RI = 0;
temp = SBUF;
Sendchar(temp);
}
}
单片机串口接收中 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)