驱动总结篇之spi驱动设备(五)

全双工可以读和写

spi驱动框架分三层:核心层、控制器驱动层、外设驱动层

外设驱动与外界交换,控制器驱动成封装了很多控制硬件的函数,外设驱动可以直接调用这些函数

spi驱动框架中设备树包含了spi控制器和设备的相关信息

1、设备树需要与控制器驱动匹配,probe函数在控制器驱动结构体中((厂家写))

2、设备树需要与设备驱动匹配,probe函数在设备结构体中)(自己写)

3、控制器与设备需要匹配(估计不用写)

一、spi总线

提供SPI控制器驱动和 设备驱动 的注册方法、注销方法、SPI通信硬件无关接口

二、控制器驱动

写在内核中,供给设备驱动调用,里面有具体读spi设备读写的函数

三、spi设备驱动

spi_driver描述一个spi外设驱动

在外设驱动实现中调用spi_register_driver(struct spi_driver *sdrv),向spi总线挂载spi_driver,该函数在drivers\spi\spi.c中实现

static struct spi_driver mc33880_driver = {
        .driver = {
            .name        = DRIVER_NAME,
            .owner        = THIS_MODULE,
        },
        .probe        = mc33880_probe,
        .remove        = __devexit_p(mc33880_remove),
    };

spi设备数据收发处理流程(全双工)

1、定义spi_trandfer,设置spi——transfer的tx_buf成员变量,tx_buf为要发送的数据,然后设置rx_buf成员变量,rx_buf保存着接收到的数据,最后设备len,也就是进行通信的数据的长度

2、初始化spi_message

3、将spi_messag_add函数将spi_transfer传输到spi_messag队列

4、使用spi_sync函数完成数据同步传输

iic设备数据传输(半双工)

使用i2c_transfer进程i2c的数据收发

1、定义消息变量msg

2、定义i2c_client

3、读取数据,先确定读地址,再度

4、写数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值