使用spi设备驱动程序读取()和write()

时间:2014-04-25 16:36:37

标签: c linux spi

我会对用户模式spi设备驱动程序(spidev.c)创建的/dev/spiB.C使用read()和write()。现在,SPI传输消息遵循某种格式(例如,24位,其中一些位用于地址,一些位用于数据),其由芯片供应商特定的spi控制器驱动器定义。消息格式如何适合read()和write()事务?我应该在write()或read()之前或之后在哪里以及如何定义代码中的格式?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要调用spidev.c中提到的spidev_ioctl()

E.g。只需检查开关盒:SPI_IOC_RD_BITS_PER_WORD,它设置位/字(第410行)。

然后它最终写入spi设备结构中的bits_per_word成员(第415行)。

此spi指针是spi设备的指针,您在spidev_probe()期间与之通信并已分配。

当然你需要在r / w之前设置配置。你还需要设置SPI的速度和模式。

我已经参考了spidev.c文件的以下链接: http://lxr.free-electrons.com/source/drivers/spi/spidev.c