Linux

Linux UART IO 文件

  • August 28, 2015

UART 設備上接收的字節如何儲存在某些串列 Linux 設備 /dev/ttyS 中?如何閱讀它們?

程序是什麼?當新數據到達時,是否應該關閉該設備文件?

接收到的字節如何儲存?

從使用者空間的角度來看,它們根本沒有被儲存。

如何閱讀它們?

如果您只想閱讀它們,那麼就可以了cat /dev/ttyS...。關於如何處理串列介面的更多資訊可以在本頁和網際網路上的大量答案和評論中看到,通常只需幾秒鐘的搜尋。一些想法:serialscreenminicomcutecom類似的工具。這裡的這個問題相當有趣。

程序是什麼?

比較直截了當:

  1. 打開設備
  2. 等待數據
  3. 完成後關閉

/dev/ttyS*是字元設備,它們在文件系統中的行為不像正常文件,因此您不需要刷新它們或關閉並重新打開它們以獲取“寫入”它們的新資訊。擁有開發文件的目的是在使用者空間和核心空間之間進行通信。

稍微詳細一點,這個過程是: 數據將作為電脈衝到達硬體、串列介面。硬體將電脈沖轉換為數字信號,並將它們傳輸到負責管理硬體的 HAL(硬體抽象層)/核心驅動程序或控制器。這將根據波特率和使用的協議轉換為字節,並緩衝以供進一步處理。然後核心會將緩衝區清空到字元設備中,從使用者空間可以看到作為/dev文件夾中的一個節點。

引用自:https://unix.stackexchange.com/questions/226077