用串口调试助手向单片机发送数据

比如我发送一个"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的时候,它还是执行默认语句。

串口调试助手一般有两种数据模式,一种是字符,一种是十六进制数 0x31 是1的ASCII 码,你把串口调试助手的发送数据类型改成十六进制就可以了。

追问

那我单片机应该写case 1,还是case 0x31呢?

追答

如果你选16进制发送 就写case 1 否则就写 case 0x31

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-23
这就对了。电脑显示的是ASCII码。1的ACII码正是31H
第2个回答  2011-09-23
能不能把程序发上来看看啊?
第3个回答  2011-09-23
这个,不是很清楚。

用串口调试助手向单片机发送数据,单片机怎么接受并储存到一个数组中...
你说的这种通信要求可以采用帧传送的方式,自己要确定一个帧格式,例如:0X55\/\/帧头标志 0XAA \/\/128字节数据 校验字节1 校验字节2 校验字节是防止数据传输错误,校验方式可自行选择。如果数据不是很重要,定义一个132字节接收队列(全局变量数组),如果数据很重要,定义两个132字节接收队列,一个做接收...

用串口调试助手给单片机发送一串字符串,单片机接受完之后向串口助手回显...
发送的时候将中断关闭,发送完以后又打开了,发送数据和中断是否打开无关,发送完数据,TI被硬件置为1,但是这需要时间,单片机处理语句速度很快,你用了while循环,肯定会重复发送,TI为1时会触发中断,所以发送以前将中断关闭,防止触发中断。我试了一下,不会重复的。看图: 本回答由提问者推荐 举报| 答案纠错 | 评论(3)...

如何用串口调试软件发送16进制数到单片机里
首先设置一下:串口号(你用哪个串口用来通讯就设置哪个串口),波特率、校验位、停止位这几个参数(这几个要和你单片机程序中串口设置的参数一样)。然后“打开串口”,然后勾选“HEX发送”。字符串输入框中输入二进制数,如aa。然后点“发送”就可以了。

串口调试助手怎么发送数据在接收区显示
首先,单片机里面要有程序。 然后,电脑串口的参数要与单片机一致。例:9600,N,8,1. (9600波特率,无校验,8个数据位,1个停止位)。 最后,点:“打开串口”。当单片机有数据发送时,PC电脑就能显示数据。 注意显示格式:如果单片机是按16进制发送,则PC也要设为16进制显示。

通过串口调试助手,可以给K20系列单片机发送can通信信息吗
可以通过232转can进行工作,这样就可以接串口助手了,协议测试类的,如格西烽火串口助手,比较方便,可以按照自己的要求自定义。

想用单片机接受从串口调试助手那里发送过来的数值数据,如何写代码(C...
\/\/ 单片机串行口发送\/接收程序,每接收到字节即发送出去 \/\/ 和微机相接后键入的字符回显示在屏幕上 \/\/ 可用此程序测试 \/\/ include <reg51.h> define XTAL 11059200 \/\/ CUP 晶振频率 define baudrate 9600 \/\/ 通信波特率 void main(void){ unsigned char c;TMOD = 0x20; \/\/ 定时...

如何使用串口调试助手
方法\/步骤 百度上搜索“串口调试助手”或者“串口调试精灵”,进行简单的安装。点击运行串口调试助手,进入相应的界面。设置串口通讯的接口,波特率校验位等相关信息。在发送栏输入你要发送的信息,选择手动发送或者自动发送,这时如果没有什么错误,对方的串口通信工具就会收到你发送的内容。设置接收区域的相关...

串口调试助手发送一个16进制的数组 单片机怎么接受
给你一个单片机基础通讯程序和上位机串口调试程序,你试一下,在这个基础之上修改。

keil调试串口通信 怎么发送数据给单片机
不连接硬件,开串口调试助手也没有用啊,串口调试助手是把数据发送到硬件串口的。你在Keil中用软件调试也没有办法高度仿真啊!建议在软件中不要使用串口中断或查询,就是说不要使用串口,而在主程序中模拟来进行调试。当然这只是我的个人看法,如果有更好的办法,可以说出来一起学习一下。

51单片机串口:为什么通过调试助手给单片机发送“1”时,数码管显示的不...
串口助手发送字符1时,实际发送1的asc码,即0x31 WAIT: MOV A,SBUF MOV P1,A 应改为 WAIT: MOV A,SBUF subb a,#30h MOV P1,A

相似回答