转自软件模拟I2C
配置流程
1、设置 GPIO 管脚
设置两个管脚作为 SCL 和 SDA,例如 GPIOA1 和 GPIOA2
image
2、SCL时钟周期
image
3、附加设置
这里主要是使用宏定义模拟函数
image
4、I2C 启动
image
5、I2C停止
image
6、发送 8 位数据,返回值为从响应 ACK 标志
image
7、接收 8 位数据
image
操作实例
以下代码为通过调用上面的基本代码来实现 I2C 通信
1、设置 DAC 寄存器的值
三个参数分比为从机地址,寄存器地址,8 位数据
image
2、读取 DAC 寄存器的值
两个参数分别为从机地址,寄存器地址,返回数据为 16 位。这是由于某些器件的硬件设计,采用 7 位表示寄存器地址,而每个寄存器包含 9 位数据。更常见的方式为 8 位寄存器地址,一个寄存器 8 位数据,这种方式的代码仅返回 8 位数据,见代码 2。
代码 1,返回 16 位数据,不常见
image
代码 2,返回 8 位数据
image













网友评论