UART 设备接收到的字节如何存储在某些串行 Linux 设备 /dev/ttyS 中?如何阅读它们?
程序是什么?当新数据到达时,是否应该关闭该设备文件?
答案1
接收到的字节如何存储?
从用户空间的角度来看,它们根本不被存储。
如何阅读它们?
如果您只想阅读它们,那么就cat /dev/ttyS...
可以了。关于如何处理串行接口的更多信息可以在本页面和互联网上的大量答案和评论中看到,一般只需几秒钟的搜索。一些想法:serial
、screen
、minicom
和cutecom
类似的工具。这个问题这里是比较有趣的。
程序是什么?
相当简单:
- 打开设备
- 等待数据
- 完成后关闭
/dev/ttyS*
是字符设备,它们的行为与文件系统中的常规文件不同,因此您不需要刷新它们或关闭并重新打开它们来获取“写入”它们的新信息。拥有开发文件的目的是提供一种在用户空间和内核空间之间进行通信的方法。
更详细一点,该过程是:数据将以电脉冲的形式到达硬件、串行接口。硬件会将电脉冲转换为数字信号,并将其传输到负责管理硬件的 HAL(硬件抽象层)/内核驱动程序或控制器。这将根据波特率和使用的协议转换为字节并缓冲以供进一步处理。然后,内核将缓冲区清空到字符设备中,从用户空间可见,作为/dev
文件夹中的节点。