|
我的目的是通过电脑给单片机发送一个字符串k+25,单片机接收到该字符串后,发送给电脑25这两个字符;单片机虽然接受到了该字符串,但是显示的是全部字符k+25,并不是25这两个字符,无论我把主函数中的SBUF=table[2],SBUF=table[3]这两个语句删除哪一个,串口助手上显示的仍然都是k+25这4个字符,不知道为什么,麻烦大神看一下,谢谢了
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char flag,a,i,j;
- uchar table[];
- void init()
- {
- TMOD=0x20;
- TH1=0xFD;
- TL1=0xFD;
- TR1=1;
- REN=1;
- SM0=0;
- SM1=1;
- EA=1;
- ES=1;
-
- }
-
- void main()
- {
- init();
- while(1)
- {
- if(flag==1)
- {
- ES=0;
- // SBUF=table[2];
- SBUF=table[3];
- while(!TI);
- TI=0;
- flag=0;
- ES=1;
- }
-
-
-
- }
-
- }
- void ser()interrupt 4
- {
- RI=0;
- table[0]=SBUF;
- table[1]=SBUF;
- table[2]=SBUF;
- table[3]=SBUF;
- flag=1;
-
-
- }
复制代码
下面是串口助手调试情况:
|
|