我想從 RS232 串行埠接收資料到我的終端並帶有指向檔案的指令。它應該非常簡單。
cat /dev/ttyS0
cat /dev/ttyS0 > file.txt
在此之前,我已經配置了參數以匹配設備(生物化學分析儀)的參數。
sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb
IE
- 波特率 - 9600
- 奇偶校驗 - 無
- 位元 - 8 位元
- 停止位 - 2
但我在終端上沒有收到任何資訊。問題是什麼?
答案1
嘗試迷你電腦首先看看你的串口回傳什麼。安裝它sudo apt-get install minicom
您可以按如下方式啟動它(對於 ttyS0):
sudo minicom -D /dev/ttyS0
您可以在 Minicom 中設定通訊參數(使用ctrl-A P
),這樣您就可以確定它們是正確的。
如果您的裝置使用特定協議,則可能需要命令才能開始通訊。所以看一下使用手冊。
也許您的設備設定為使用硬體握手。如果可能的話,請將其關閉(至少一開始)。
如果您無法將其關閉,那麼您也必須在您這邊進行設定。在 Minicom 中,這是在 然後ctrl-A O
下serial port setup
。
我經常使用 Minicom 來調試串行通信,我發現它效果最好。
我從 OP 收到了更多資訊:
實驗室儀器(Cobas C311)採用ASTM協議。在介面中,我們只需點擊“發送到主機”,它就會發送一堆 ASTM 記錄。我只需要在文件中接收它們。還有其他設定嗎?開始採集資料的命令是什麼?
選擇正確的參數。 Minicom 正在展示 9600 8N2。希望一切都好。但什麼也沒收到——一點也沒有。分析儀提示:“儀器發送 ENQ 作為發送請求,但主機在 15 秒內未返回 ACK 或 NAK。(鏈路逾時)”
該設備使用ASTM 協議。設備發送該<ENQ>
字元作為它已準備好開始發送資料的訊號。
您無法使用minicom
任何其他終端程式接收此資訊。您將需要支援該協議的適當的應用程式軟體。
您絕對必須閱讀用戶手冊並檢查安裝磁碟(如果有)和製造商的網站以獲取支援此協議的應用程式。
如果他們沒有對此設備的應用程式支持,我會感到驚訝。如果他們提供某些東西,很可能是 Windows 應用程式或一些範例程式碼加上一個函式庫。
自己寫一些東西是可能的,但這並不容易。有一些 Python 支援美國材料試驗協會並且有一個Perl腳本你可以嘗試一下。
SO還有一個郵政有一些關於 ASTM 的資訊..