专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 嵌入开发

串口读不到数据或读到的数据看不清楚编码法则

发布时间:2010-06-13 21:23:21 文章来源:www.iduyao.cn 采编人员:星星草
串口读不到数据或读到的数据看不清楚编码规律
环境:winxp下用串口与电子称相连,读取电子称数据。

我用了两种方法,一种是用c#的serialport,
读取数据无反应;

另外一种是用VB的一个控件:

Microsoft.VisualBasic.Devices.Computer cmbCOM = new Microsoft.VisualBasic.Devices.Computer();

读不到数据,或者读到的数据是0/0/0/....类似的;

我用了网上的一些软件测试:直接读取数据有时显示的是这样一个符号:ξ,类似这样的,打不出来,如果是16进制显示80/08/08一类的字符;

搞不清楚问题所在,难道是通讯数据是16进制的还是什么问题呢?

另外我希望能通过DataReceived事件自动触发,网上看了一些信息,大概的意思是当缓冲区的数据超过一定的字符数时触发。但是具体的不清楚,我想电子称应该物体放上去之后先有不规则的数据传递过来,然后再稳定到一个数据,那是不是要判断这些数据之后再触发呢?

对这一块比较菜,请教了。


------解决方案--------------------
需要找一下电子称的数据协议
------解决方案--------------------
电子称的数据协议,是必须的。硬件设置和协议。一般是应答式的。电子称不会主动发数据包的。
------解决方案--------------------
波特率、校验位、...
------解决方案--------------------
引用:
电子秤用的RS232串口,但是这个串口下还有没有哪些不同的协议,我就不清楚了.

4楼给我的软件我下载看了一下,跟我之前在网上找到的调试软件也类似.

16进制显示:   00 00 00 00 00 00 00 00 80 80 00 80 00 00 80 80 80 00 00 80 00 00 00 00 00 00 00 00 00 00 80 80 00 80 00 00 80 80 80 00 00 80 00 00 00 00 00 00 00 00 00 00 80 80 00 80 00 00 80 80 80 00 00 80 00 00 00 00 00 00 00 00 00 00 80 80 00 

去掉16进制显示:€€€€€€€€€€€€€€€€€€€€€€

16进制下似乎还能看出一点规律,非十六进制下直接茫然.

在网上看了一下十六进制转十进制,还没有看懂.


如果找不到电子称的协议,教楼主一个笨办法:
电子称的数据格式无非是这种组合,g/kg + 数据 + 正负号 + 小数点
自己可以做一下实验,把通过串口读出来的数据一对比,就知道一帧有多少个byte,帧数据中的哪一位代表单位,哪一位代表小数点,哪一位代表正负,余下的数据格式很容易就判断出来了。我就说这么多,楼主自己琢磨
------解决方案--------------------
凭我一点不多的经验,我认为楼主的波特率?停止位?或校验方式是否设置的不正确??
------解决方案--------------------
电子秤一般传送的就是 ASCII 码,消息帧长度固定。楼主的现象应该是楼上所说,波特率设置有问题。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: