linux - 多从机SPI编程如何设置片选? (结构 spi_ioc_transfer)

标签 linux embedded-linux spi

也许我实际上问错了问题,但我只是在嵌入式世界中迈出了第一步。所以如果这个问题有点愚蠢,我很抱歉。

我正在尝试在 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/

相关文章:

linux - 将表格格式的输出转换为 bash 脚本中的逗号分隔表格

c - C语言变量名中的双下划线是什么意思?

linux - 在运行 fedora 11 的嵌入式系统中存储序列号的位置

c - 监视 linux 内核中上下文切换次数的最有效方法是什么?

linux - 无法挂载内存cgroup

linux - Bash 循环 : How to execute once, 然后移动到下一个迭代

linux - 静态库的 Yocto 构建失败,错误为 "No Match Found"

c - 使用 STM32 进行 SPI 的 DMA 时数据无效

android - 如何将传感器值发送到 Android 应用程序?

c - SPI 电子墨水显示屏与 PIC 18F46K22 连接时出现问题