stm32f103串口接收到HEX发送的信息怎么在接收时转换成同值的ASCLL显示

2019-07-21 03:26发布

有一个模块发送的消息是以HEX的方式发送,我在接收时想以ASCLL的方式接收,请问有什么好的方法转换吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
nashui_sx
1楼-- · 2019-07-21 03:40
Roken 发表于 2019-4-5 18:56
谢谢,其实我想将hex转换成等值的ascll显示,顺带问下sscanf怎么取字符串第二个字符

问问题说清楚嘛,说不清楚就举例子,举例子也不会就先自己琢磨下自己要干啥

hex 也分格式呀,0xfe  "fe"  "0xfe"
后俩sscanf直接读取就可以了
例如  "fe 13 d4"
int a,b,c;
sscanf("fe 13 d4","%x %x %x",&a,&b,&c);  
printf ("%d %d %d ",a,b,c);  

还有你的ASCII 要是显示成16进制,sscanf也不用呀
要是十进制sprintf就可以了
还是先学习学习 sscanf sprintf有问题再问
nashui_sx
2楼-- · 2019-07-21 07:09
要是hex数字,直接接收就好了,hex字符串sscanf最好用 可以处理带不带0x
int a=0;
sscanf("0xf3","0x%x",&a);  
printf ("%d ",a);       



int a=0;
sscanf("f3","%x",&a);  
printf ("%d ",a);       

Roken
3楼-- · 2019-07-21 09:09
nashui_sx 发表于 2019-4-5 17:34
要是hex数字,直接接收就好了,hex字符串sscanf最好用 可以处理带不带0x
int a=0;
sscanf("0xf3","0x%x", ...

谢谢,其实我想将hex转换成等值的ascll显示,顺带问下sscanf怎么取字符串第二个字符

一周热门 更多>