用串口调试助手向单片机发送数据
比如我发送一个"1"以后,我在单片机内用a=SBUF接收,然后用switch(a)case1:来做事情,为什么感觉收到的a的内容不是1呢?因为没有执行case1后面的语句...
比如我发送一个"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的时候,它还是执行默认语句。 展开
前面省略
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的时候,它还是执行默认语句。 展开
4个回答
展开全部
这就对了。电脑显示的是ASCII码。1的ACII码正是31H
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能不能把程序发上来看看啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个,不是很清楚。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询