开发过程调试是个令人头疼的问题,在程序正式运行起来之前,需要借助其他的工具来调试硬件、检验代码逻辑是否正确。乐鑫的示例代码中有个使用串口控制台调试i2c设备的工程,这里分享一下。
在ESP-IDF安装目录examples\peripherals\i2c\i2c_tools下的i2c_tools工程,查看工具的ReadMe文件。可知该工程可用于i2c设备的调试,类似Linux中的i2c_tool工具。
i2cconfig: 根据指定的GPIO序号、I2C端口号和频率来配置I2C总线。i2cdetect: 探测挂载在I2C总线上的设备,并显示探测到的设备的I2C地址。i2cget: 读取I2C总线上设备的寄存器值。i2cset: 设定I2C总线上设备的寄存器值。i2cdump: 检测寄存器在I2C总线上是否可见。修改工程中的i2c设备引脚,并编译工程,烧录到开发板上。

查看ESP32-P4-Function-EV-Board开发板的原理图,可知音频芯片、显示驱动和摄像头驱动的I2C控制口挂载在同一个I2C总线上。

工程运行后,在串口控制台输入i2cdetect,可以看到输出挂载到i2c总线上设备的地址。
对比音频手册中的说明,可知其中的地址为18的设备为音频芯片。

借助这个示例工程,可以方便调试i2c设备,排除硬件问题。
更多回帖