一. I2C 实验简介
I2C实验,我们就来学习如何使用 I.MX6U 的 I2C 接口来驱动 AP3216C,读取 AP3216C 的传感器数据。
AP3216C是一个三合一的环境光传感器,ALS+PS+IRLED,ALS是环境光,PS是接近传感器,IR是红外LED,与主控芯片通信使用的是 I2C接口。
二. AP3216C传感器代码
本实验 在 RTC实时时钟实验的工程上进行编写。
将 RTC实验工程拷贝一份,重新命名为 17_i2c工程。在 /bsp 目录下创建一个ap3216c目录,用来存放 ap3216c传感器相关代码。在 /bsp/ap3216c目录下创建 两个文件: bsp_ap3216c.h 与 bsp_ap3216c.c 文件。
1. AP3216C原理图
I2C实验原理图如下:
结合以上的硬件原理图,可以看出 :
AP3216C连接到了 I2C1接口上:
I2C1_SCL: 使用的是UART4_TXD这个IO,复用位ALT2
I2C1_SDA: 使用的是UART4_RXD这个IO。复用为ALT2、
由上一篇关于 I2C总线接口特点,可以知道:
I2C总线,一条是 SCL(串行时钟线),另外一条是 SDA(串行数据线),这两条数据
线需要接上拉电阻,总线空闲的时候 SCL 和 SDA 处于高电平。
2. AP3216C相关代码
ap3216c传感器初始化接口:ap3216c_init() 分三部分工作。如下:
(1) IO初始化
(2) I2C接口初始化
(3) ap3216c传感器初始化