158| 0
|
[ESP8266/ESP32] 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 选项
2. main/idf_component.yml:添加TOUCH扩展库
3. main/spi_lcd_touch_example_main.c:参考STMPE610,添加XPT2046处理 4. main/spi_lcd_touch_example_main.c:修改屏幕引脚设置
我使用的是扩展底板这个区域的引脚: ![]() 代码修改完以后,还需要使用menuconfig进行配置: 1. 设置target为P4并进入配置界面:
2. 配置屏幕类型和TOUCH类型: ![]() 配置完成之后,编译烧录即可:
**二、点亮ST7789屏幕** 我手头还有一块ST7789的屏幕,分辨率也是240x320,没有TOUCH功能。 参考ILI9341屏幕的处理,对源码在做一些处理即可: 1. main/Kconfig.projbuild:添加 ST7789 选项 2. main/spi_lcd_touch_example_main.c:参考ILI9341,添加ST7789处理 3. main/spi_lcd_touch_example_main.c:修改引脚配置
代码修改完以后,再次使用menuconfig进行配置: 1. 配置屏幕类型和禁用触摸功能: ![]() 配置完成之后,编译烧录即可:
运行后,实际效果如下: ![]() 如果是带触摸的版本,点击按钮之后,屏幕方向会发生对应的变化。 三、运行LVGl自带的music player演示 lvgl中,自带了很多example和demo,可以根据实际需要启用。 要运行LVGl自带的music演示,只需要下面简单两步设置就能启用: 1. 在menuconfig配置中,启用LVGL Music player demo ![]() 2. 在代码中调用lv_music_demo():
运行后,实际效果如下: ![]() |
FireBeetle 2 ESP32 P4 点亮 ILI9341、ST7789屏幕.pdf
1.32 MB, 阅读权限: 10, 下载次数: 2
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed