5609|15

67

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

串口调试助手数据处理问题 [复制链接]

       这是我在串口调试助手收到的16进制数据,每4个字节是一个数,需要转换成10进制数,我不知道怎样让单片机每发送4个字节就换行显示,而且有方便快捷的办法转成10进制么?谢谢大家。
00 FF F0 C1 27 7F FF FF FF FF FE A3 3B 00 00 02
07 FF F3 1D 64 FF F0 C3 2E 69 55 2B 00 FF F0 C1
55 00 00 00 5B 2A DD 6A C0 00 00 06 26 46 EE CA
80 00 89 54 40 FF FF FB 69 7F FF FF FF FF F0 C0
70 2E 68 9A 00 FF F0 C0 70 7F FF FF FF 00 04 7C
E5

最新回复

这个问题问的,都不知道该哭还是该笑了  详情 回复 发表于 2015-6-12 12:58
 
点赞 关注

回复
举报

973

帖子

15

TA的资源

纯净的硅(高级)

沙发
 
有啊,不要用16进制显示就好了,发ASCII码,每4个字节发个换行符,就行了。

点评

那就是说我需要在单片机里将16进制数转化成ASCII码再用串口发出来么?要怎么转换啊?还有在串口这边接收完又怎么转换成十进制啊?  详情 回复 发表于 2015-5-20 17:05
 
个人签名我来到这个世界,就是为了遇见你。在某天我们会相遇,然后在一起,直到最后一起离去。
 

回复

67

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
一个小白 发表于 2015-5-20 16:00
有啊,不要用16进制显示就好了,发ASCII码,每4个字节发个换行符,就行了。

那就是说我需要在单片机里将16进制数转化成ASCII码再用串口发出来么?要怎么转换啊?还有在串口这边接收完又怎么转换成十进制啊?

点评

至于怎么转换,你都知道ASCII码了,这不就知道怎么转换了吗,难道还要我替你写程序吗!?  详情 回复 发表于 2015-5-22 08:50
你不是用的串口助手吗?不需要转换,直接收到的就是你想要的  详情 回复 发表于 2015-5-22 08:47
 
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

4
 
直接字符显示不可以么

点评

字符显示的话这些数字都是乱七八糟的东西。  详情 回复 发表于 2015-5-20 19:59
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(中级)

5
 
数码小叶 发表于 2015-5-20 19:11
直接字符显示不可以么

字符显示的话这些数字都是乱七八糟的东西。

点评

你发送的是啥格式  详情 回复 发表于 2015-5-21 08:58
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

6
 
数字的ASCII是0x30-0x39
回车是0x0d
换行是0x0a
直接将你需要的数字逐个转换为字符再输出就行了,注意格式。
如果只是要阅读,可以转换成BCD码,举个例子,0x45,0x87可以用来表示4587,具体什么格式只要双方约定了就好。这样用4bit传递一个数字,同时上位机可以直接阅读,兼顾了效率和可读性。
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

7
 
你的发送函数应该是uartsendbyte之类的东西,要发送数字10,参数写成‘10’,加单引号,就可以了。

点评

'10'是非法内容。单引号包裹的是字符,10有2个字符,是字符串,字符串需要用双引号包裹。 一般对与固定的字符串才这么处理,对于变化的字符串特别是数字,一般都是将其转化为ASCII再发出。 需要取整数的各个位  详情 回复 发表于 2015-5-21 01:26
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

8
 
ienglgge 发表于 2015-5-20 22:19
你的发送函数应该是uartsendbyte之类的东西,要发送数字10,参数写成‘10’,加单引号,就可以了。

'10'是非法内容。单引号包裹的是字符,10有2个字符,是字符串,字符串需要用双引号包裹。

一般对与固定的字符串才这么处理,对于变化的字符串特别是数字,一般都是将其转化为ASCII再发出。

需要取整数的各个位上的数字,再将其转换成ASCII。
 
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

9
 
tanzhiying 发表于 2015-5-20 19:59
字符显示的话这些数字都是乱七八糟的东西。

你发送的是啥格式

点评

我要传到PC的是一个个long int的数,是分成4个int来传的。  详情 回复 发表于 2015-5-21 09:58
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(中级)

10
 

我要传到PC的是一个个long int的数,是分成4个int来传的。
 
 
 

回复

1461

帖子

1

TA的资源

纯净的硅(中级)

11
 
直接加换行符就可以
 
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

12
 
本帖最后由 gh131413 于 2015-5-21 17:42 编辑

看这儿吧,俺的回答一向都是直接到位而且详细,呵呵,俺以前弄过用单片机的两路PWM输出给快充检测芯片CHY100所需要的不同的模拟电压信号,然后开关电源根据CHY100检测到的信号再输出不同的电压:5V  9V  12V,然后单片机再检测5V 9V 12V这三个电压通过串口显示在电脑上,电压错误就报警……

如果想换行显示的话发送0X0A就可,如果楼主想用十进制显示在串口助手上,可以在前面定义uchar table[]="0123456789";这种方式,然后显示什么值当然通过适合自已的公式计算即可,还有,有些串口助手是不显示中文的,推荐用sscom32这个,有什么问题可以再问我……


   顺便说一下,以前我提问的时候老是没有想要的答案,不知道是不是别人不理解我想问的意思还是……所以俺一般看到有人提问都可以猜个十有八九……
 
 
 

回复

973

帖子

15

TA的资源

纯净的硅(高级)

13
 
tanzhiying 发表于 2015-5-20 17:05
那就是说我需要在单片机里将16进制数转化成ASCII码再用串口发出来么?要怎么转换啊?还有在串口这边接收完又怎么转换成十进制啊?

你不是用的串口助手吗?不需要转换,直接收到的就是你想要的
 
个人签名我来到这个世界,就是为了遇见你。在某天我们会相遇,然后在一起,直到最后一起离去。
 
 

回复

973

帖子

15

TA的资源

纯净的硅(高级)

14
 
tanzhiying 发表于 2015-5-20 17:05
那就是说我需要在单片机里将16进制数转化成ASCII码再用串口发出来么?要怎么转换啊?还有在串口这边接收完又怎么转换成十进制啊?

至于怎么转换,你都知道ASCII码了,这不就知道怎么转换了吗,难道还要我替你写程序吗!?
 
个人签名我来到这个世界,就是为了遇见你。在某天我们会相遇,然后在一起,直到最后一起离去。
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

15
 
可以转换成ASCII码来发送,只是你下面要做数据转换,比较麻烦
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

16
 
这个问题问的,都不知道该哭还是该笑了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表