![串行通信与设备驱动程序](https://linux22.com/image/1342189/%E4%B8%B2%E8%A1%8C%E9%80%9A%E4%BF%A1%E4%B8%8E%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F.png)
我的理解就是它串行通信用于沿串行总线进行 CPU 到 CPU(或微控制器到微控制器)的直接通信。
我的理解那是一个设备驱动用于设备到 CPU 或设备到微控制器的通信;本质上它告诉 CPU 如何读取/写入数据到某些引脚以便正确地与原始设备通信。
我在这里是对的,还是完全错误?如果我所说的任何内容不正确或被误解,请澄清/纠正我!我基本上是在寻找一个试金石来帮助我决定何时需要使用 SPI 或 I2C 或 UART(串行通信)或仅使用驱动程序。提前致谢。
答案1
那么这是否意味着设备驱动程序实际上使用 SPI 串行通信?如果是这样,SPI 通信可供用户应用程序使用,那么为什么要使用设备驱动程序呢?
很多原因:
您可能希望编写可使用各种不同类型的串行通信的代码,而无需更改更高级别的代码。
您可能希望调节不同应用程序对串行端口的访问。
串行接口在处理中断时可能效率最高,您需要用低级代码来处理中断。
等等。
答案2
“串行通信”是指每次传输一位的数字通信。这与每次传输多位的并行通信相反。
您对串行通信的误解来自于混淆了串行通信的特定应用与串行通信的思想. 实际上有非常多的应用程序。