3687|19

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

基础问题/串口通信 [复制链接]

请问,串口通信接收到的数据是怎么样的呢?我的是9600,8.0.1.
我的理解是:接收的应该是:0-256的字符。但是我接收的到的数据竟然大小有;超过256的。
标准的应该是:  01 04 04 01 08 02 15 BB 15
但是我收到的是:1025 250 460 7805 等9个字符。要怎么解决。

因为我对串口不是很了解。所以大家帮帮忙。

最新回复

会不会是因为连发了两次(或者多次)数据,并且接收时不显示空格造成的。你说你用串口调试助手接收正常,那是因为串口调试助手每接收一次数据之间有一个空格  详情 回复 发表于 2009-8-29 16:00
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
接收的应该是:0-256的字符。

不是字符,当成二进制数看

大于256的话,你要不先看看你用的PC上的接收软件有没有问题

换一个看看,像经典的串口助手挺不错
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
回复楼上,我用软件测试的时候,收到的数据是正常的。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

4
 
串口通信,我们收到的是2进制字符的话,为什么会出现大雨255的值呢?
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

5
 
你是不是选了字符接收,应该是16进制接收的。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
用串口测试工具,怎么输入怎么接收,没有问题啊,我现在编了一个串口程序,也是随便怎么发,接受到的数据就是发送的数据。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

7
 
回复:huazai7715323,可以设置为16进制接收吗?请指点。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
补充一下:我发送给温湿度模块,温湿度模块返回的也是:16进制,然后我们收到的是:10进制数值,会不会这里出错了???
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

9
 
在说一点:用测试工具是正常的,但是要勾上16进制的选项,问:那个16进制选项的功能是如何实现的呢?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 zp752963831 的回复:
在说一点:用测试工具是正常的,但是要勾上16进制的选项,问:那个16进制选项的功能是如何实现的呢?



就是选中那个选项之后,工具在显示之前,会调用一个十六进制到十进制的转换函数,然后将转换后的结果显示到屏幕上
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

11
 
协议上说:温湿度返回的是:01 04 04 01 08 02 15 BB 15

那我们用ReadFile(hPortCom[4], buf, dwLength, &dwLength, NULL);得到buf的值也是什么?

我得到的是:1025 260 271 51960 105 911 0 0 0.而且前面两个数是不会变的,如果变成16进制就是。401 104 。。。怎么算都不对啊。请教。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

12
 
你估计是显示的问题,你是按字显示的了,没有按字节显示吧
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

13
 
引用 11 楼 codesnail 的回复:
你估计是显示的问题,你是按字显示的了,没有按字节显示吧


字节显示就对了。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 
同意按字节字节显示
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

15
 
[url=http://download.eeworld.net/source/1441583][/url]
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

16
 
你的buf是怎么定义的,把buf定义为unsigned char型就可以了

unsigned char buf[9];
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

17
 
首先要按字节显示,其次像楼上所说,定义一个unsigned char 型的数组
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

18
 
关注一下
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

19
 
楼主按字节显示就好了,你现在的是按USHORT进行显示,再加上你用的CPU的字节序刚好倒过来

01 04 04 01 就变成了 0X0401 0X0104,也就是你说的
引用 10 楼 zp752963831 的回复:
我得到的是:1025 260 271 51960 105 911 0 0 0.而且前面两个数是不会变的,如果变成16进制就是。401 104
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

20
 
会不会是因为连发了两次(或者多次)数据,并且接收时不显示空格造成的。你说你用串口调试助手接收正常,那是因为串口调试助手每接收一次数据之间有一个空格
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表