2011-05-22 53 views
-1

我正在尝试将字符串“QZ1”发送到comport;但接收单元的手册要求“发送给接收方的每个命令字符串必须以{*}(十六进制2A)开头,并以回车{cr}(十六进制0D)结束。”我经历了许多不同的迭代而没有成功。将字符串和十六进制发送到comport

会有人引导我写的方向,以便如何最好地发送字符串到comport用字符串{*}(十六进制2A)并以回车{cr}(十六进制0D)结尾?

+0

什么是[COMPORT](http://www.merriam-webster.com/dictionary/comport)? – 2011-05-22 16:07:31

+0

输出时,comport(官方为COM端口)接受程序中的一个8位字符,并将其作为一串位低位位首先在一条输出线上发送。在输入时,它从远程源线上读取一串传入的比特,将这些比特收集到一个8位字符中,然后以这种形式传送给一个程序。所以它的输出作业是序列化并发送一个8位字符;并在输入接收和并行一个8位字符。 COM端口通常包含一个全双工UART(通用异步收发器)。英特尔8251是第一批UART之一。 – 2011-05-22 16:24:37

+0

谢谢你的帮助皮特。不幸的是,当我将字符串(_XMR3Comport.Write(“* SV \ r”))写入comport时,接收器挂起。该手册说,“终止{cr}必须结束每个命令,即使多个命令发送回来。”尽管我无法确定,但我不知道接收者是否正在寻找十六进制的回车符并且无法识别回车符串值“\ r”。有没有其他格式可以将字符串写入comport?非常感谢,皮特。 – Bill 2011-05-22 17:53:55

回答

2

是的,它可能会混淆从字符切换到他们的十六进制表示和后面。这是做什么。不要担心文档中显示“十六进制和十六进制”。只是

  1. 发送字符 '*'
  2. 发送字符 'Q'
  3. 发送字符 'V'
  4. 发送字符 '\ r' 回车符

所以你要存储一个C字符串:“* QV \ r”并从那里发送。

HTH。如果没有,请多询问一下。

0

,我可以让你只需要2个字节添加到您发送的〔实施例hello将变为*hello\r注意字符串2A是十六进制的ASCII字符*和\ r的0D表示的字符表

相关问题