日期:2014-05-18  浏览次数:20827 次

继续询问串口发送数据问题
一个串口设备,我现在认为他内部可以理解为一个单片机的概念
我要更改其内部的一个编号
修改方式我是跟踪其他软件的实现方式得到的
现在我按照跟踪结果开始自己实现
前面是数据已经可以正常响应
但到最后一步的过程中,设备有一部分数据部响应
最后一步我说一下
PC端以115200波特率发送三条数据,设备返回响应,其中第三个返回的INTEL TE28F160C3
结果应该是一个芯片型号,我程序中也已经返回
下面发送一条0x11到串口设备,正常情况应该返回0x12
但我的程序发送完后设备返回ox12 0x15下面开始几条数据都不返回了
最后两条数据设备又响应了,我最后两条是把设备重置到正常状态,开始更改时数据
把设备设置到更改状态的。
大家有没有什么知道意见
尤其搞过硬件的,说说看
为什么会出现响应部分数据的情况

那个0x11我查询如果是ascii码的话应该代表DC1,好像是启动设备的
我也发烧0x11但响应的却不对
路过的都来顶起
顺便散分!

------解决方案--------------------
你有设备的说明吗,最好看看说明,而且你发送0x11,是以什么形式发出去的,二进制的0x11和字符的0x11完全不一样的
------解决方案--------------------
唉,不是很懂啊.那年头能学够用不需再学呀! 顶一个!
------解决方案--------------------
15是NUL,一般来说很少有用这个作为上传的结尾吧。
我做的话是以LF作为结尾,这样用serial port读起来方便。
你检查下缓冲区,看看是不是这方面的原因。
具体的我也没法说
------解决方案--------------------
嗯,我就说正常不应该出来nul的,你试试能不能重现正确的场景,看哪变化了。或者把波特率降低看看,4800试试。检查下板子的干扰。
------解决方案--------------------
笔误

你看看原版是不是比你多发了些内容,先试试1:1吧
------解决方案--------------------
探讨

多谢“野比”
我那个15是十六进制的,所以对应的十进制应该是21,如果是ASCII码的话应该是NAK
重现正确的很简单,我拿别人软件运行一遍就可以了
我要实现他们实现的功能而已
呵呵
串口发送的数据都是直接跟踪得到的
设备是现成的,不是开发板