请教51单片机串口通讯发送汉字的问题

2019-07-15 09:24发布

请教一下大家,PC给单片机通过串口发汉字,单片机端如何判断汉字,并执行相应的程序。
比如说 PC发送“亮” ,单片机执行LED亮,发送“灭”,单片机执行LED灭

我在测试过程中先通过发送数字判断数字进行操作,不能准确判断发送的数字,是因为进制的问题吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
人中狼
1楼-- · 2019-07-15 18:24
 精彩回答 2  元偷偷看……
猴子oro
2楼-- · 2019-07-15 22:12
人中狼 发表于 2017-11-3 15:07
要注意你的数据格式,由pc发送的数据是ascii还是hex格式,5在ascii格式里应该是16进制为0x35,在hex格式里应该是16进制为0x05。
另外如何判断是进入了else,如果是看整个p2口的输出,那容易判断,但是如果看p2.0的话,0x01和0x33的位0均为1。 ...

那如果我判断是否是一个汉字 比如是否为“亮” 怎么判断呢
wulinwl
3楼-- · 2019-07-16 03:44
用串口发送汉字没有实际意义,需要自定义通讯协议发送汉字编码,还得费脑筋写解析程序。只有操作汉字显示器件用汉字字符才有实际意义。
午夜拜山
4楼-- · 2019-07-16 04:47
中文是两个字节的,比如:亮->0xc100,灭->0xF000,按原理来说pc机发送给单片机一个亮字,单片机接收到的其实是0xc1和0x00这两个数字,但是这样很容易出问题,比如只接收到0xc1。建议用数字1代表开,0代表灭,这样子你不用查汉字编码表,直接查asc表就行了。0对应就是0x30,1对应就是0x31.如果说判断不准确那就是波特率不一致的问题了。
zhifubao
5楼-- · 2019-07-16 09:17
我提醒一下楼主KEIL C51编译汉字编码时对一些汉字有BUG。

一周热门 更多>