【发布时间】:2011-05-22 15:50:27
【问题描述】:
我正在尝试将字符串“QZ1”发送到 comport;但是接收单元的手册要求“发送到接收器的每个命令字符串必须以 {*}(hex 2A) 开头并以回车 {cr}(hex 0D) 结束。”我经历了许多不同的迭代,但都没有成功。
是否有人可以指导我编写方向,了解如何最好地将字符串发送到以 {*}(hex 2A) 开头的字符串并以回车 {cr}(hex 0D) 结尾的 comport?
【问题讨论】:
-
comport 是什么?
-
输出时,comport(正式名称:COM 端口)接受来自程序的一个 8 位字符,并将其作为一串位在单个输出线上发送,低位在前。在输入时,它从远程来源的线路读取传入的位串,将这些位收集到一个 8 位字符中,然后以这种形式将其传递给程序。所以它的输出工作是序列化并发送一个 8 位字符;并在输入上接收和并行化一个 8 位字符。 COM 端口通常包含一个全双工 UART(通用异步收发器)。 Intel 8251 是最早的 UART 之一。
-
感谢您的帮助皮特。不幸的是,当我将字符串( _XMR3Comport.Write("*SV\r") )写入 comport 时,接收器挂起。手册说“终止 {cr} 必须结束每个命令,即使多个命令被背靠背发送。”虽然我不能确定,但我想知道接收器是否正在寻找十六进制的回车符并且不识别回车符字符串值“\r”。是否有任何其他格式可以将字符串写入 comport?再次非常感谢,皮特。
-
皮特 - 你是对的。事实证明,我错误地设置了 comport Handshake,一旦我将其更改为适当的设置,一切都很好。谢谢你的帮助。比尔
标签: string serial-port hex