2014-08-28 35 views
0

背景信息:我正在使用Visual Studio 2005在对话框中编写MFC/C++。请原谅我,如果我缺乏任何信息或任何重要的东西来回答我的问题。我会每天从早上9点到下午5点30分检查,所以请不要犹豫,询问更多背景资料。如何知道使用十六进制与我的串行端口进行通信?

我知道如何使用MFC/C++打开,读取,写入和关闭串行端口。问题是我不知道要发送到串口。我看到我的同事们发送十六进制这样:

21 04 07 00 08 00 0F 22

我的工作是显示信号,噪声和门槛上的RX和TX板下面的图表。 RX和TX板位于在东西作为这样的底部:(TTP://www.joyfay.com/images/fei833/POSsystem/SSS05.jpg)

  1. http://tinypic.com/view.php?pic=2qdbnf8&s=8#.U_7vU_mSxnQ
  2. http://tinypic.com/view.php?pic=29vxzmg&s=8#.U_7vi_mSxnQ

我已经准备好学习了,我并不是要求直接的答案。我希望我的Stack Overflow编程老手可以帮助我。非常感谢。

+0

这不是一个真正的C++问题,它是一个关于如何驱动串口的问题 – 2014-08-28 09:14:00

+0

您需要查阅设备的API文档。 – Niall 2014-08-28 09:17:10

+0

我一直在网上搜索,我看到大多数人都在问如何打开,读取,写入和关闭端口。当谈到编写端口时,他们似乎总是知道应该使用十六进制编写什么,并且缺少关于打开,读取,写入和关闭端口的代码的知识。我是另一种方式。任何想法,我应该看看?非常感激。 – 2014-08-28 09:19:36

回答

1

您将不得不挖掘您正在与之通话的设备的文档。它应该为您提供用于交换数据的协议。询问你的同事,他们肯定知道文档的位置。

我只能从

21 04 07 00 08 00 0F 22

的为0x21字节可能是起始字节,表示帧的开始做出粗略的估计。该设备使用它来同步自身,以检测帧的开始。 0x22字节很可能是最终字节,这表示预计不会有更多字节出现。该设备使用它来知道该帧已被完整接收,因此可以处理数据。 0x04字节可能是一个长度字节,它编码后面有多少个数据字节。它看起来是0x07,0x00,0x08,0x00。很不可思议他们编码的是什么,它可能是两个16位值,例如7和8. 0x0f字节可能是数据字节的校验和,用于验证数据字节没有被破坏。

非常粗略的猜测,请仔细阅读相关文档。当然你也可以和你的同事讨论一下,当你有人知道你旁边隔间的事实时,在互联网上询问一个完全陌生的人是毫无意义的。 Petzold的书“代码”非常好,可以帮助你不再谈论“十六进制”。

+0

我开始更加了解这组十六进制数字是怎么说的。是的,我会听取意见,并问我的同事。感谢有关此事的解释,提示和资源。 – 2014-08-29 01:30:22

+0

我已就此事向我的主管咨询过谁撰写过类似软件。他说,以前编写这个软件的人没有留下任何协议或文档,而且做得不好。我想问问是否有可能查看固件并尝试了解这一行的十六进制。还是应该制定我自己的协议? – 2014-09-01 01:19:06

相关问题