你可以把controller的值通过串口返回电脑看看值是否正确 |
改把HEX选中再发送试试。 |
1092648746 发表于 2020-4-12 16:50 void Usart() interrupt 4 { recv=SBUF; controller=recv-0x30; RI=0; SBUF=recv; while(!TI); TI=0; if(controller==0) {led0=0;} else if(controller==1) {led1=0;} } 改了下。刚烧录完可以。输入信息的控制还是不行。 |
你发送的是字符串'1'吧,对应接收的HEX码是0x31。有疑问可以看看ASCII码。 可以这样改一下 recv=SBUF; //电脑发送的信息进入单片机缓冲器 controller=recv - 0x30; //减去0x30后的值为真正的数字 |