FireBeetle 2 ESP32 P4 使用 ILI9341、ST7789屏幕
本帖最后由 HonestQiao 于 2025-8-3 22:12 编辑咱们DFRobot终于推出了正式版本的ESP32-P4开发板:FireBeetle 2 ESP32 P4
还提供了配套的扩展底板:
P4的外设功能,非常的丰富:
扩展底板也引出了非常多的引脚,非常方便连接很多的外设同时玩起来。
P4功能强大,先把屏幕点亮再说,后面一些学习研究也要用到屏幕。
FireBeetle 2 ESP32 P4 兼容树莓派的DSI屏幕接口,但还在适配中,所以先点SPI屏幕。
乐鑫官方esp-idf开发框架中,提供了 spi_lcd_touch 演示程序:esp-idf/examples/peripherals/lcd/spi_lcd_touch,可以直接用于点亮ILI9341屏幕和GC9A01屏幕。
另外, 这个演示程序是给予LVGL的,调通了,后续也可以很方便的跑LVGL的代码。
**一、点亮ILI9341屏幕**
我手头有一块ILI9341屏幕,分辨率是240x320,但TOUCH驱动不是演示程序中的STMPE610,而是XPT2046。
研究了一下esp-idf v5.4.2版本的代码,经过一些处理即可支持,具体操作如下:
1. main/Kconfig.projbuild:添加 XPT2046 选项
代码显示异常,请查看 pdf 附件
2. main/idf_component.yml:添加TOUCH扩展库
atanisoft/esp_lcd_touch_xpt2046: "^1.0"
3. main/spi_lcd_touch_example_main.c:参考STMPE610,添加XPT2046处理
代码显示异常,请查看 pdf 附件4. main/spi_lcd_touch_example_main.c:修改屏幕引脚设置
代码显示异常,请查看 pdf 附件
我使用的是扩展底板这个区域的引脚:
代码修改完以后,还需要使用menuconfig进行配置:
1. 设置target为P4并进入配置界面:
idf.py set-target esp32p4
2. 配置屏幕类型和TOUCH类型:
配置完成之后,编译烧录即可:
idf.py build flash monitor
**二、点亮ST7789屏幕**
我手头还有一块ST7789的屏幕,分辨率也是240x320,没有TOUCH功能。
参考ILI9341屏幕的处理,对源码在做一些处理即可:
1. main/Kconfig.projbuild:添加 ST7789 选项
代码显示异常,请查看 pdf 附件2. main/spi_lcd_touch_example_main.c:参考ILI9341,添加ST7789处理
代码显示异常,请查看 pdf 附件3. main/spi_lcd_touch_example_main.c:修改引脚配置
代码显示异常,请查看 pdf 附件
代码修改完以后,再次使用menuconfig进行配置:
1. 配置屏幕类型和禁用触摸功能:
配置完成之后,编译烧录即可:
idf.py build flash monitor
运行后,实际效果如下:
如果是带触摸的版本,点击按钮之后,屏幕方向会发生对应的变化。
三、运行LVGl自带的music player演示
lvgl中,自带了很多example和demo,可以根据实际需要启用。
要运行LVGl自带的music演示,只需要下面简单两步设置就能启用:
1. 在menuconfig配置中,启用LVGL Music player demo
2. 在代码中调用lv_music_demo():
代码显示异常,请查看 pdf 附件
运行后,实际效果如下:
页:
[1]