2011-05-22 50 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表示的字符表

相關問題