也许我实际上问错了问题,但我只是在嵌入式世界中迈出了第一步。所以如果这个问题有点愚蠢,我很抱歉。
我正在尝试在 C++ 和 Linux 环境中为 9DOF IMU 编写软件。
据我对 SPI 的了解,SS 引脚必须处于低电平状态才能进行传输。我看过多个读取或写入字节函数的示例,并且都使用了 struct spi_ioc_transfer,但它们都是单从示例,并且没有提及在代码中设置或配置 SS。另外,当我检查 spi_ioc_transfer 的结构时,有 cs_change,但是它怎么知道我们从一开始就在处理哪个 cs?
最佳答案
要使用的芯片选择(CS 或 SS)取决于您打开的设备节点。
要使用 Linux spidev 驱动程序与 SPI 芯片通信,您需要打开一个设备,例如/dev/spidev0.1。设备节点文件名中的数字分别指代总线和芯片选择——在本例中,它将是第一条总线 (0) 和第二条 CS (1)。如果您想与不同芯片选择上的设备通信,您必须打开不同的设备节点并在适当的节点上执行 ioctl。
关于linux - 多从机SPI编程如何设置片选? (结构 spi_ioc_transfer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57430453/