串口通信的一些问题?

2019-03-24 20:37发布

串口通信的问题?小弟最近用串口调试助手做了些收发试验,用数码管显示串口调试助手发送一一对应的值!
被十六进制和ASCLL码及十进制完全搞的有些乱了

[ 本帖最后由 哆啦A梦 于 2013-8-29 08:52 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
yangxf1217
1楼-- · 2019-03-25 06:06
不选hex发送的是字符;
要提取每个字符后减去48就是你要显示的数字了
哆啦A梦
2楼-- · 2019-03-25 11:36
 精彩回答 2  元偷偷看……
yangxf1217
3楼-- · 2019-03-25 17:32
原帖由 哆啦A梦 于 2013-8-27 16:01 发表
字符指的是ASCLL码吧!1的ASCLL码转换成16进制是31转换成10进制是49,请问怎么减?按这个方法我输入1的ASCLL码至数码管显示的是数字1么?

字符不是ascll码。
给你个附件,是ASCLL码表。一个字符对应一个ascll码。你要把字符转换成ascll码才能搞到数码管去显示。
哆啦A梦
4楼-- · 2019-03-25 22:56
非常谢谢,有个疑问是不是串口调试工具发送的字符1给单片机后,其实是以ASCLL码的形式发送吧?然后单片机接收这个ASCLL码后不能直接给数码管吧,因为它不是代表数字0123456789,然后需要再转换才能给数码管,是不是这样啊?
如果错了谢谢指正:carnation: :rose:
yangxf1217
5楼-- · 2019-03-25 23:31
原帖由 哆啦A梦 于 2013-8-27 17:21 发表
非常谢谢,有个疑问是不是串口调试工具发送的字符1给单片机后,其实是以ASCLL码的形式发送吧?然后单片机接收这个ASCLL码后不能直接给数码管吧,因为它不是代表数字0123456789,然后需要再转换才能给数码管,是不是这 ...

你把我也搞晕了。你要在数码管上显示的这个数类型要是int,而不能是char。所以要把char转换成int。char的‘1’其实是int的49,所以你要减去48.就是这样的(⊙o⊙)哦。下班了呵呵。还有什么疑问明天继续讨论啊。拜啦。。
哆啦A梦
6楼-- · 2019-03-26 01:30
int和char的区别只是数值范围不同,和数码管显示会有关系?

一周热门 更多>