比如我发送一个"1"以后,我在单片机内用a=SBUF接收,然后用switch(a) case 1:来做事情,为什么感觉收到的a的内容不是1呢?因为没有执行case 1后面的语句。收到的到底是什么东西,发回电脑上面显示的HEX码是"31"
前面省略
void main()
{
while(1)
{
if(flag==1)
{
switch(a)
{
case 1: 执行语句1; break;
.................
case 8:执行语句8; break;
break:执行默认语句;break;
}
........
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
结果我发现,我发送1的时候,它还是执行默认语句。