请大佬们一个串口通信的问题,困扰我两天了 T_T

2019-07-20 01:35发布

我就想把USART_RX_BUF【】里的数据取出来嘛,我看原子哥的教程里不是说数据是一个一个发送出来的嘛,我就想把他们一个一个取出来,然后用if看看是否相等。但是一直不行,我问师兄他说取出来的数据是十六进制的,要转换成十进制的再相乘,但是我在网上找了好多C语言例程还是没转换出来T_T。望大佬细心指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
edmund1234
1楼-- · 2019-07-20 07:26
虽然你没说明, 但我猜你接收的数据是ASCII码, 如果是就应该这样转换

a=USART_RX_BUF[0]-'0';
b=USART_RX_BUF[1]-'0';
c=USART_RX_BUF[2]-'0';
e=100*a+10*b+c;
翼行园子
2楼-- · 2019-07-20 12:40
楼上正解
翼行园子
3楼-- · 2019-07-20 18:29
 精彩回答 2  元偷偷看……
陆仁贾
4楼-- · 2019-07-20 19:51
edmund1234 发表于 2019-6-1 13:21
虽然你没说明, 但我猜你接收的数据是ASCII码, 如果是就应该这样转换

a=USART_RX_BUF[0]-'0';

谢谢大佬!问题解决了,但是我有个问题想再请教一下,就是你后面减的那个‘0’是什么意思啊?我可能听不懂,但你能简单给我说一下吗?等我大二学了之后可能印象就会更深了。
edmund1234
5楼-- · 2019-07-21 01:37
陆仁贾 发表于 2019-6-1 16:56
谢谢大佬!问题解决了,但是我有个问题想再请教一下,就是你后面减的那个‘0’是什么意思啊?我可能听不 ...

ASCII码的'1' 它是== ‘0’+ 1,
'2'=='0'+2
直到‘9’也是如此类推

找个ASCII表看一下
陆仁贾
6楼-- · 2019-07-21 03:52
 精彩回答 2  元偷偷看……

一周热门 更多>