前端时间买了个ESP32 C3的开发板,合宙的经典版,Arduino和MicroPython下均能正常运行,而且价格便宜,还算不错。
至于合宙搭配出售的Air101 LCD,分辨率80*160,要连接并通过MicroPython驱动,参考了这篇之后,能够驱动并显示文字、图片等内容。
完事做个总结。
C3开发板和I2C屏幕的一般连接法:
LCD | ESP32-C3 |
---|---|
GND | GND |
VCC | 3.3V |
SCL | GPIO 02 |
SDA | GPIO 03 |
RES | GPIO 10 |
DC | GPIO 06 |
CS | GPIO 07 |
BL | – |
合宙的C3用此法连接直接就是连着的7个针脚,很好辨认。果云的C3也可以,唯独IO03针脚被RED灯占用,换IO08即可。
里面用到了st7735
的驱动,源代码及示例见Github 。用TFT_eSPI也可以,它支持的范围更广,包括但不限于ST7735,但是只能用在Arduino,不支持MicroPython。
注意:ST7735的库默认不支持中文,中文字体的显示另外参考这篇,我自己没有测试。
另可选别的st7735驱动的TFT屏,比如1.8寸的,分辨率一般为128*160.
在更高级的芯片上,如ESP32和S3,可选规格更高的屏,甚至是带触摸的。
由于所使用的ST7735库是Python代码软驱,所以渲染效率奇差,基本上渲染一屏字体都要两三秒,图片就更不用说了。这就使得它的应用范围极其狭小。
若想提高渲染效率,途径如下
- 换更高规格的开发板;
- 使用lv_micropython,但编译有问题;
- 换开发环境,用Arduino & (TFT_eSPI || LVGL);
合宙官方的LuatOS通用性差,文档写的又太随意,就不考虑了。