为ESP32编写的I2C ADXL345库

经过数不清多少个小时的奋战,I2C ADXL345库终于完工了(主要目的还是开发I2C库)。

ESP32这款芯片很强大,然而太年轻。尽管它有大量接口和外设,官方的esp-idf开发平台并没有提供大部分驱动,连非常常用的I2C驱动都没有,导致使用I2C设备必须得自己找驱动。然而,由于这芯片才上市不久,社区还不够完善,目前为止并没有现成的I2C驱动可用。
我经过搜索,找到了esp-open-rtos中的I2C驱动。不过它是为ESP8266编写的,而ESP32和ESP8266的GPIO API有很大的差异,导致底层语句必须更换。
为了测试I2C库,我翻到了之前买的ADXL345加速度传感器,它正好是I2C接口。又经过搜索,并没有找到ESP32或ESP8266的FreeRTOS驱动。倒是在Geeetech的wiki里面发现一段Arduino的Example code。Arduino的驱动都封装成了类,非常容易使用,而我找到的I2C库相对来说就比较复杂了。经过长时间的调试与修改,最终成功驱动了ADXL345传感器,效果如下:

相关代码我放在github上,地址https://github.com/imxieyi/esp32-i2c-adxl345

文章目录
|