如何使用C從串口讀取數據?然後再將數據傳輸到調制解調器? 我正在使用RS 232電纜進行串行通信...從串口讀取數據
從串口讀取數據
回答
首先,這非常依賴於您使用的操作系統。
對於* nix類型,您通常會像普通文件(例如/ dev/ttyS0)一樣打開串口設備,然後開始讀取或寫入數據。 至於Windows,我可以給你建議尋找一個可靠的庫,因爲Windows串行通信可以是一個真正的噩夢。更甚者,舊版本的Windows和以前的版本可能會有一些差異。
個人而言,因爲我是wxWidgets用戶,我使用wxCTB。 您應該查找適合您使用的IDE的庫。
一些免費的鏈接;) www.robbayer.com/files/serial-win.pdf www.lookrs232.com/com_port_programming/
了很多有用的信息,關於處理串行端口上都電腦和電線的設備端可以在Jan Axelson的網站找到Serial Port Complete。
與港口的實際互動將會高度平臺化。在大多數的味道* nix中,你打開一個名爲什麼設備,如/dev/ttya
和使用read()
,write()
和ioctl()
讀,寫和配置端口。
在Windows上,打開與CreateFile()
功能命名COM1
(或\\.\COM1
一些口味)的文件,然後把它配置和快樂與像SetCommState()
功能和DCB
結構。這些細節與您在* nix上需要做的事情大致相似,但組織完全不同。您可以在MSDN上找到關於配置和使用COM端口的全部討論。
在嵌入式設備上,您將直接訪問UART的硬件寄存器或與RTOS交互。無論哪種方式,基本上無法使設備上的代碼廣泛地可移植。
在Windows的土地上,你最好找到一個讓所有魔法發生的庫。
就我個人而言,我使用Borland C++將小工具放在一起與我的硬件(引導程序,配置和測試)進行對話,並且我很滿意在Delphi和BCC中都可以使用的TurboPower Async Professional Library,它是開源的(Mozilla公共許可證1.1)。
在嵌入式世界你的編譯器將有一些機構(通常是編譯器特異性的),允許其訪問用於實現串行端口功能或者在設備內或在外部存儲器或IO硬件寄存器映射設備。這些寄存器定義通常由工具或處理器製造商提供,它是,不只是一個寄存器設置其操作模式,並然後讀出TJE的數據接收緩衝寄存器寫入配置控制值到串行端口的情況下。
聽起來很簡單,但是,在MSP-430郵件列表USART編程問題是最常見的一個主題。
要擴展Ian的答案,典型的嵌入式c編譯器將有一個編譯器指令或一個語句,其參數控制波特率等設置,並將UART(或其他I/O硬件)與流相關聯。您可以指定一個流名稱(如果您有多個串行端口)或使用默認值。然後你可以用通常的C字符例程訪問串行端口,並且當它接收到每個字符時會有一箇中斷。所以你的中斷程序讀取每個字符並將其放入緩衝區。
- 1. 從串口讀取數據
- 2. 在java中從串口讀取數據
- 3. Java/Arduino - 從串口讀取數據
- 4. 從串口c讀取數據#
- 5. 從python的串口讀取數據
- 6. Java從串行端口讀取數據
- 7. 從串口讀取二進制數據
- 8. 從串口讀取
- 9. 如何從串口讀取數據並寫入串口?
- 10. 從串口讀取,但只讀取最新數據
- 11. 從串口讀取字節
- 12. 從串口讀取arduino C
- 13. 無法從串口讀取
- 14. python從串口讀取GPS
- 15. C#從串口讀取arduino
- 16. 從串口讀取字節
- 17. 從串口讀取的Python
- 18. 從串口讀取linux
- 19. 從串口讀取字符串從Arduino
- 20. 無法通過串口讀取數據
- 21. 讀取和發送數據到串口
- 22. 讀取串口實時數據
- 23. 讀取到達串口的數據包
- 24. 串行端口卡在讀取()數據
- 25. 從串口讀取數據並跟蹤最近的行數
- 26. 從串口讀取字符串Visual Basic
- 27. 從COM端口讀取數據
- 28. 關於從端口讀取數據
- 29. 從USB端口讀取數據
- 30. 如何從USB端口讀取數據?
什麼操作系統? – 2009-07-29 20:52:32
什麼硬件/平臺? – DaveR 2009-07-29 20:57:08