问题描述:
我用串口发送的数据既有字符,又有十六进制数。其中,发送的字符123ab时,在virtual terminal中有显示,但是程序不运行;而发送十六进制数01时,
virtual terminal没有显示,程序确运行正确,求大神指点~~~ 谢谢
PS:用开发板时,发送字符123ab,十六进制数01,都运行正确!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;
uchar i,flag,j;
void uart_initial()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
EA=1;
ES=1;
}
void main()
{
uart_initial();
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
switch(i)
{
case 'a':led=0;break;
case 'b':P1=0xf0;break;
case '1':P1=0xf2;break;
case '2':P1=0xf4;break;
case '3':P1=0xf8;break;
case 0x01:j++;P1=j;break;
}
ES=1;
}
}
}
void serial() interrupt 4
{
RI=0;
i=SBUF;
flag=1;
}
此帖出自
小平头技术问答
单片机虚拟终端的选项作用如下:
输入的是ASCII码,那就不要勾选Hex Display mode
输入的是16进制,那就要勾选Hex Display mode
一周热门 更多>