目录

  • 一、IIO 子系统简介
  • 二、IIO子系统使用的一些相关的结构体、函数等
    • 1、iio_dev 结构体
      •   ①modes:是选择iio驱动设备支持的工作模式,模式分别有如下:
      •   ②dev:其是一个设备结构体。
      •   ②channels:为 IIO 设备通道规格结构表。
  • 三、IIO驱动框架搭建
    • 1、SPI基础框架搭建
    • 2、基于SPI基础驱动框架上搭建IIO基础驱动框架
      •   ①测试IIO基础驱动框架程序
    • 3、配置IIO设备通道规格结构表
      •   ①了解通道文件命名方式
      •   ①编写IIO驱动程序的配置IIO设备通道规格结构表
    • 4、添加Regmap API
    • 5、完善xxx_read_raw函数,真正实现通道文件可读取传感器数据
  • 四、完整的驱动程序
    • 1、驱动程序
    • 2、测试现象
    • 3、icm20608APP程序及测试

一、IIO 子系统简介

  IIO 全称是 Industrial I/O,翻译过来就是工业 I/O,大家不要看到“工业”两个字就觉得 IIO是只用于工业领域的。大家一般在搜索 IIO 子系统的时候,会发现大多数讲的都是 ADC,这是因为 IIO 就是为 ADC 类传感器准备的,当然了 DAC 也是可以的。大家常用的陀螺仪、加速度计、电压/电流测量芯片、光照传感器、压力传感器等内部都是有个 ADC,内部 ADC 将原始的模拟数据转换为数字量,然后通过其他的通信接口,比如 IIC、 SPI 等传输给 SOC。
  因此,当你使用的传感器本质是 ADC 或 DAC 器件的时候,可以优先考虑使用 IIO 驱动框架。

二、IIO子系统使用的一些相关的结构体、函数等

1、iio_dev 结构体

  IIO 子系统使用结构体 iio_dev 来描述一个具体 IIO 设备,此设备结构体定义在include/linux/iio/iio.h 文件中,结构体内容如下(有省略):

struct iio_dev {int              modes;struct device         dev;struct iio_chan_spec const  *channels;int               num_channels;const char         *name;const struct iio_info     *info;/* 注意:这个结构体只列出了该实验驱动使用到的结构体属性,其他省略了,有兴趣的大家可以查看内核源码,有注释的 */
};

  ①modes:是选择iio驱动设备支持的工作模式,模式分别有如下:


  至于sysfs接口可以简单理解为生成了带有用于用户访问设备文件,也就是说实现sysfs接口,可通过脚本命令“echo”、“cat”访问驱动。详细介绍可以点击该链接,这位博主写的挺详细的

驱动程序开发:基于ICM20608六轴传感器 --- 使用Regmap API 的 SPI 读取数据 之 IIO驱动相关推荐

  1. C语言 | 基于MPU605(六轴传感器)的I2C实现LCD1602显示(代码类)

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 基于MPU605(六轴传感器)的I ...

  2. keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...

    之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...

  3. 【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  4. 【飞控开发基础教程6】疯壳·开源编队无人机-SPI(六轴传感器数据获取)

    COCOFLY教程 --疯壳·无人机·系列 SPI(六轴传感器数据获取)          图1               一.ICM20602 简介     六轴传感器在当今智能穿戴和定位导航产品 ...

  5. Micro Python———MPU6050六轴传感器

    目录 1.什么是MPU6050? MPU6050介绍: MPU6050寄存器介绍: 2.例程 1.平台 2.目的 3.讲解 1.查阅原理图 2.流程分析 3.代码讲解 3.结果 1.什么是MPU605 ...

  6. 【STM32Cube】学习笔记(三):六轴传感器

    文章目录 摘要 一.简介 1.I2C原理 2.MPU6050介绍 3.MPU6050寄存器介绍 4.DMP使用 二.硬件电路设计 三.软件设计 1.CubeMX配置 2.CubeIDE代码 3.结果显 ...

  7. LSM6DS3(六轴传感器)STM32驱动及6D功能实现

    刚使用了STM32测试了LSM6DS3该六轴传感器,顺便也测试了其6D方向检测功能,效果是能满足对6个面方向的识别需求. 该六轴传感器支持I2C/SPI通信.在读取该六轴传感器寄存器时,采用I2C通信 ...

  8. 【开源教程13】疯壳·开源编队无人机-SPI(六轴传感器数据获取)

    COCOFLY教程 --疯壳·无人机·系列 SPI(六轴传感器数据获取)          图1               一.ICM20602 简介     六轴传感器在当今智能穿戴和定位导航产品 ...

  9. ICM20602六轴传感器-IIC通信模式

    ICM20602六轴传感器 ICM20602 通过IIC协议与MCU通信 ICM20602 初始化配置 ICM20602 相关配置函数 ICM20602 内部寄存器 注意事项 (一)ICM20602 ...

最新文章

  1. jar包升级部署到服务器详细流程,将服务部署在linux中
  2. 美国两政府网站被挂马 以性丑闻女星为诱饵
  3. 抽象类注意事项(面试常常涉及)
  4. xss漏洞的poc与exp
  5. 简单介绍Python中的几种数据类型
  6. t-sql里Linked server跨数据库查询
  7. Java JVM总结
  8. java8并行流_Java 8:CompletableFuture与并行流
  9. Android之使用HttpURLConnection类查看网络图片以及网络源码
  10. linux挂载点 知乎,使用 Linux stat 命令创建灵活的文件列表 | Linux 中国
  11. 中国人工智能学会通讯——融合经济学原理的个性化推荐
  12. Java NIO深入(Buffer)-我们到底能走多远系列(18)
  13. 与Snapchat死磕, Facebook推出AR滤镜应用
  14. 修改Linux里的hosts文件
  15. 基于FPGA的中值滤波器设计
  16. 记一次Android机顶盒破解工程
  17. 群晖DS218+部署kafka
  18. SD皇冠毛绒布料材质制作视频教程 中文字幕
  19. 处理 “回扣”的4种对策
  20. 状态压缩技巧:动态规划的降维打击

热门文章

  1. 【短视频 】 分享几个免费剪辑视频的软件
  2. 圣思园——Java SE Lesson 5
  3. Matlab的bsxfun函数
  4. 阅读源码-理解torch.utils.data、torch.utils.data.Dataset、torch.utils.data.DataLoader的工作方式
  5. dparsf是什么_回顾:第五届DPABI/DPARSF特训营暨DPABISurf加强营
  6. 内网渗透-内网环境下的横向移动总结
  7. Oracle数据库的数据备份
  8. 在线JSON转XML工具
  9. 深入浅出Pairwise 算法
  10. html中关于侧边导航栏和导航栏的编写