esp8266 IIC
esp8266它有SPI接口,也有IIC接口。但IIC接口是使用GPIO模拟的,也就是说,你可以使用8266上的任意两个GPIO模拟出IIC接口来。同时,每个管脚内部都有上拉电阻,无需外接。
注:ESP8266只能用做IIC主设备,不能用做从设备。
那我们是否还要写一堆IIC的start函数、stop函数?
不用,官方的SDK已经给我们写好了整个的IIC库,只要配置好要用的管脚,直接调用函数即可,例如:
i2c_master_start(void);
i2c_master_stop(void);
i2c_master_writeByte(uint8 wrdata);
1、添加相关源文件和头文件
把i2c_master.c拷入app下的driver文件夹,把i2c_master.h拷入app下的include下的driver文件夹。 #include “driver/i2c.h”
2、选择要用到的GPIO
打开i2c_master.h文件,管脚选择部分如下所示:
#define I2C_MASTER_SDA_GPIO 2
#define I2C_MASTER_SCL_GPIO 14
通过这6个宏定义,配置好IIC接口要用的时钟脚和数据脚
- 开发板上的IIC硬件 SDA 为IO2 SCL 为IO14.但是我用IO2作为了调试信息的输出引脚,所以IIC的OLED会没有显示,将SDA IO2 改为其他的管教,OLED可以正常的显示。
#define I2C_MASTER_SDA_GPIO 2
#define I2C_MASTER_SCL_GPIO 14