從串口接收數據

從串口接收數據

我想從 RS232 串行埠接收資料到我的終端並帶有指向檔案的指令。它應該非常簡單。

cat /dev/ttyS0
cat /dev/ttyS0 > file.txt

在此之前,我已經配置了參數以匹配設備(生物化學分析儀)的參數。

sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb

IE

  1. 波特率 - 9600
  2. 奇偶校驗 - 無
  3. 位元 - 8 位元
  4. 停止位 - 2

但我在終端上沒有收到任何資訊。問題是什麼?

答案1

嘗試迷你電腦首先看看你的串口回傳什麼。安裝它sudo apt-get install minicom

您可以按如下方式啟動它(對於 ttyS0):

sudo minicom -D /dev/ttyS0

您可以在 Minicom 中設定通訊參數(使用ctrl-A P),這樣您就可以確定它們是正確的。

如果您的裝置使用特定協議,則可能需要命令才能開始通訊。所以看一下使用手冊。

也許您的設備設定為使用硬體握手。如果可能的話,請將其關閉(至少一開始)。

如果您無法將其關閉,那麼您也必須在您這邊進行設定。在 Minicom 中,這是在 然後ctrl-A Oserial port setup

我經常使用 Minicom 來調試串行通信,我發現它效果最好。

我從 OP 收到了更多資訊:

實驗室儀器(Cobas C311)採用ASTM協議。在介面中,我們只需點擊“發送到主機”,它就會發送一堆 ASTM 記錄。我只需要在文件中接收它們。還有其他設定嗎?開始採集資料的命令是什麼?

選擇正確的參數。 Minicom 正在展示 9600 8N2。希望一切都好。但什麼也沒收到——一點也沒有。分析儀提示:“儀器發送 ENQ 作為發送請求,但主機在 15 秒內未返回 ACK 或 NAK。(鏈路逾時)”

該設備使用ASTM 協議。設備發送該<ENQ>字元作為它已準備好開始發送資料的訊號。
您無法使用minicom任何其他終端程式接收此資訊。您將需要支援該協議的適當的應用程式軟體。

您絕對必須閱讀用戶手冊並檢查安裝磁碟(如果有)和製造商的網站以獲取支援此協議的應用程式。
如果他們沒有對此設備的應用程式支持,我會感到驚訝。如果他們提供某些東西,很可能是 Windows 應用程式或一些範例程式碼加上一個函式庫。

自己寫一些東西是可能的,但這並不容易。有一些 Python 支援美國材料試驗協會並且有一個Perl腳本你可以嘗試一下。

SO還有一個郵政有一些關於 ASTM 的資訊..

相關內容