SPI是非常常见一种串行通信协议,如何在Linux操作系统下使用SPI来读取对应六轴传感器的数据。 

     SPI驱动框架分为主机控制器驱动和设备驱动,这里面主机控制器指的是SPI控制器接口。因此,编写好SPI控制器驱动以后,不管是什么SPI设备,控制器部分驱动是一样的。

    在Linux中有一个spi_master表示主机驱动。  spi设备驱动也有一个核心结构spi_driver。

spi_master是一个结构体:

struct spi_master{
struct device dev;
struct list_head list;
.......
}
//设备端结构体
struct spi_driver {
const struct spi_device_id *id_table;
int (*probe)(struct spi_device *spi);
int (*remove)(struct spi_device *spi);
void (*shutdown)(struct spi_device *spi);
struct device_driver driver;
}; //设备端有与内核主控驱动的匹配函数