簡體   English   中英

SerialPort的回車問題

[英]Carriage Return issue with SerialPort

我正在嘗試與接受一些不同命令的實驗室儀器進行通信。 儀器僅使用回車來終止 - 沒有換行。

當我使用RealTerm並根據需要設置連接時,我可以發送一個ASCII命令和一個CR字符。 儀器提供正確的響應。

然而,當使用.NET的SerialPort對象時,似乎\\r C in C#不一定正確,因為每當我發送它時,我的儀器都會給出與打印機超時/錯誤相關的錯誤代碼(RS-232端口被認為是“打印機“但手冊也指定了如何連接到PC。

我當然已經驗證我的port的NewLine屬性設置為\\r 這是我嘗試過的幾件事:

_port.WriteLine(command); // error at the instrument once this executes.
_port.Write(command + _port.NewLine); // also error.
_port.Write(command); // executes without error, but next line errors:
_port.Write(_port.NewLine);

RealTerm中的CR與C#中的\\r是否存在一些根本區別? 或者還有其他東西在這里發揮作用?

無論如何,我得知這個用例 - 我需要設置DtrEnable = true; 停止錯誤。 我確實得到了一個程序(稱為“AccessPort”)來成功運行並監視我的端口。 雖然我的代碼和RealTerm都寫了相同的字節,但我注意到驅動程序配置中的位掩碼有點不同。 即使我在RealTerm中禁用了所有握手和流量控制,它仍然啟用DTR,在瀏覽驅動程序的頭文件后確認。 在我的代碼中執行相同操作修復了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM