资料下载&百问网技术交流群,百万嵌入式工程师聚集地: https://www.100ask.net/page/2248041
资料下载coding无法使用浏览器打开,必须用git工具下载:
git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
视频观看
百问网驱动大全
编写设备驱动之i2c_driver参考资料:
- Linux内核文档:
Documentation\i2c\instantiating-devices.rst
Documentation\i2c\writing-clients.rst
- Linux内核驱动程序示例:
drivers/eeprom/at24.c
- 本节代码:GIT仓库中
- 框架:
IMX6ULL\source\04_I2C\02_i2c_driver_example
STM32MP157\source\A7\04_I2C\02_i2c_driver_example
- AP3216C
IMX6ULL\source\04_I2C\03_ap3216c
STM32MP157\source\A7\04_I2C\03_ap3216c
- 框架:
分配、设置、注册一个i2c_driver结构体,类似drivers/eeprom/at24.c
:
在probe_new函数中,分配、设置、注册file_operations结构体。 在file_operations的函数中,使用i2c_transfer等函数发起I2C传输。
2. 编写i2c_driver 2.1 先写一个框架 2.2 在为AP3216C编写代码百问网的开发板上有光感芯片AP3216C:
AP3216C是红外、光强、距离三合一的传感器,以读出光强、距离值为例,步骤如下:
- 复位:往寄存器0写入0x4
- 使能:往寄存器0写入0x3
- 读红外:读寄存器0xA、0xB得到2字节的红外数据
- 读光强:读寄存器0xC、0xD得到2字节的光强
- 读距离:读寄存器0xE、0xF得到2字节的距离值
AP3216C的设备地址是0x1E。
3. 构造i2c_client下节视频。
资料下载&百问网技术交流群,百万嵌入式工程师聚集地: https://www.100ask.net/page/2248041
百问网技术论坛: http://bbs.100ask.net/
百问网嵌入式视频官网: https://www.100ask.net/index
百问网开发板: 淘宝:https://100ask.taobao.com/ 天猫:https://weidongshan.tmall.com/