如何使用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. 在java中从串口读取数据
- 2. 从串口读取二进制数据
- 3. 从串口读取
- 4. 从串口读取,但只读取最新数据
- 5. C#从串口读取arduino
- 6. 从串口读取字节
- 7. 无法从串口读取
- 8. 从串口读取的Python
- 9. 从串口读取linux
- 10. 从串口读取字符串从Arduino
- 11. 串行端口卡在读取()数据
- 12. 无法通过串口读取数据
- 13. 读取到达串口的数据包
- 14. 读取和发送数据到串口
- 15. 从串口读取数据并跟踪最近的行数
- 16. 从串口读取字符串Visual Basic
- 17. 从USB端口读取数据
- 18. 关于从端口读取数据
- 19. 从COM端口读取数据
- 20. Intermec SR61T扫描仪从串口读取数据com1
- 21. c#串口不能从arduino读取数据
- 22. 从串口读取十六进制数据阵列字节值
- 23. php从linux上的串口读取数据
- 24. 从c中的串口设备读取数据#
- 25. 如何格式化从MATLAB串口读取的数据?
- 26. 无法从串口读取数据(在C#中)
- 27. PySerial:从串行端口读取时数据损坏
- 28. 使用android从USB串口读取数据
- 29. 如何从vb.net的串口读取数据?
- 30. 从python中的串口读取数据时的问题
什么操作系统? – 2009-07-29 20:52:32
什么硬件/平台? – DaveR 2009-07-29 20:57:08