12.3在应用层使用SPI总线

在SPI总线驱动框架中提供了一个spidev 的字符设备驱动,在应用层可以通过它来访问SPI总线。

应用层访问SPI总线的步骤

  1. 编写spidev设备树节点,在SPI总线的设备树节点下添加spidev设备的树节点,设备树示例如下所示:
spidev0: spidev@0 {
    compatible = “spidev”;
    reg = <0>;
    spi-max-frequency = <50000000>;
};

其中compatible属性等于下列值,就会跟spidev驱动匹配:

  • “rohm,dh2228fv”
  • “lineartechnology,ltc2488”
  • “spidev”
    设备树与spidev匹配成功后会在/dev下创建一个名为spidevB.D的设备文件(B表示总线号,D表示它是这个SPI Master下第几个设备)
  1. 在应用层通过open打开spidev
  2. 通过ioctl对spidev进行配置(如配置模式、字节序、一次传输的字节数等,当然这些也可以通过设备树进行配置)
  3. 使用read读取SPI设备,使用write写SPI设备,若要进行双向传输也可以通过ioctl实现
  4. 使用完成后用close关闭spidev

spidev驱动程序分析

spidev.c通过file_operations向应用层提供接口
在这里插入图片描述

读函数

在这里插入图片描述

写函数

在这里插入图片描述

通过ioctl配置spidev或查询spidev当前配置

在这里插入图片描述

通过ioclt读写数据(可以同时读写)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值