单片机学习小组
直播中

李韵

7年用户 201经验值
私信 关注

串口中断接收问题

大家帮我看看这个串口中断函数有没有问题啊?现在的问题是用串口调试助手可以接收单片机在main函数里发送的数据,但是在中断里无法接收数据,在中断里接收上位机的数据再发送到上位机结果都是00!就是说无法产生RI中断。[C] 纯文本查看 复制代码
void uart() interrupt 4{if(RI){//P1=0xf0;RI=0;rec=SBUF;P1=rec;//delayms(5);//sendbyte(rec);//if(cntRxdti){TI=0;flagOnceTxd=1;}}void main(void){led_en=1;//T0_Init();usart_init();EA=1;while(1){sendbyte(rec);//sendbyte(0x22);//UartDriver();//uchar buf[8]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};}}

回帖(3)

樊周依

2019-7-4 13:48:42
因为主函数里一直在发送数据,每次发完都置TI为1,进入中断后进入if(TI)函数里,而接收数据进入if(RI)时,个人觉得与if(TI)有冲突,建议最好把if(TI)放在主函数里。。。。
举报

赵晓敏

2019-7-4 14:06:45
建议把完整的程序发上来。现在看不出来。
举报

王博

2019-7-4 14:13:37
我感觉是if(RI)这句不对
举报

更多回帖

发帖
×
20
完善资料,
赚取积分