模板: RP2350-Touch-LCD-2.8-Demo
来自Waveshare Wiki
C环境
目录结构
├── CMakeLists.txt ├── example_auto_set_url.cmake ├── examples # 示例程序 │ ├── CMakeLists.txt │ ├── amoled # 测试AMOLED的示例 │ │ ├── CMakeLists.txt │ │ ├── amoled_flush_rgb │ │ └── amoled_touch │ ├── battery_read # 串口打印电池电压的示例 │ ├── hello_world # 打印 hello world 的示例 │ │ ├── CMakeLists.txt │ │ ├── serial │ │ └── usb │ ├── lvgl # 一些使用LVGL的示例 │ │ ├── CMakeLists.txt │ │ ├── factory # 出厂自带的程序 │ │ ├── lv_port # LVGL对接硬件的源文件 │ │ ├── lvgl_battery # 使用LVGL显示电池电压数值的示例 │ │ ├── lvgl_brightness # 使用LVGL控制屏幕亮度的示例 │ │ ├── lvgl_example # 运行LVGL自带Demo的示例 │ │ ├── lvgl_image # 使用LVGL显示图片的示例 │ │ ├── lvgl_pcf85063 # 使用LVGL显示时间和日期的示例 │ │ └── lvgl_qmi8658 # 使用LVGL显示IMU数据的示例 │ ├── qmi8658_raw_out # 使用串口打印IMU数据的示例 │ ├── rtc_pcf85063 # 使用串口打印时间、日期的示例 │ └── sd_card_spi # 测试SD Card读写的示例 ├── libraries # 库文件 │ ├── CMakeLists.txt │ ├── bsp # 硬件相关的库 │ ├── lvgl # LVGL库 │ └── no-OS-FatFS-SD-SDIO-SPI-RPi-Pico # SD Card 相关的库 ├── pico_extras_import_optional.cmake └── pico_sdk_import.cmake
编译
如果使用的是VSCode 的 Raspberry Pi Pico插件
- 导入工程, 选择工程目录
- 点击Comple编译进行编译
如果使用的是Ubuntu
cd RP2350-Touch-LCD-2.8-Demo/C mkdir build cd build cmake .. make -j8
编译的固件
- 编译完完成后会生成 .uf2 文件,在目录 build/examples
烧录固件
- 按住板子的BOOT按键,通过 Type-C 线将板子接到电脑的 USB 接口,然后松开按键,电脑会将识别为一个可移动盘,最后将编译生成的 .uf2 格式的文件复制到可移动盘即可。
新建工程
- 下面我们以新建名为 lvgl_test 的工程为例。
- 在 examples/lvgl 目录下新建一个文件夹 lvgl_test ,在这个文件夹上新建 CMakeLists.txt 和 main.c 文件。
- CMakeLists.txt 文件的内容为
add_executable(lvgl_test
main.c
../lv_port/lv_port.c
)
pico_enable_stdio_usb(lvgl_test 1)
pico_enable_stdio_uart(lvgl_test 0)
# pull in common dependencies
target_link_libraries(lvgl_test
pico_stdlib
bsp
lvgl
lvgl::demos)
# create map/bin/hex/uf2 file etc.
pico_add_extra_outputs(lvgl_test)
- main.c 文件的内容为
#include <stdio.h>
#include "pico/stdlib.h"
#include "bsp_i2c.h"
#include "../lv_port/lv_port.h"
#include "demos/lv_demos.h"
#include "hardware/clocks.h"
#include "bsp_battery.h"
#include "bsp_lcd_brightness.h"
int main()
{
stdio_init_all();
bsp_battery_init(100);
bsp_i2c_init();
lv_port_init();
bsp_lcd_brightness_init();
bsp_lcd_brightness_set(50);
// lv_demo_music();
lv_demo_widgets();
while (true)
{
lv_timer_handler();
sleep_ms(1);
}
}
- 在 examples/lvgl 目录下的 CMakeLists.txt 最后加上。
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/lvgl_test)
- 重新编译,build/examples/lvgl 会新增一个文件夹 lvgl_test,里面有编译生成的 .uf2 格式的文件。
MicroPython环境
目录结构
├── examples
│ ├── imu_test.py # 打印imu数据的示例
│ ├── lcd_test.py # 测试lcd的示例
│ ├── lcd_text.py # lcd显示文字的示例
│ ├── lcd_touch.py # 同时测试lcd和touch的示例
│ ├── lvgl_example.py # lvgl示例
│ ├── lvgl_image.py # lvgl显示图片示例
│ ├── rtc_test.py # 打印时间和日期的示例
│ └── touch_test.py # 测试touch的示例,打印坐标
├── firmware
│ └── RP2350-Touch-LCD-2.8.uf2 # MicroPython的固件,若想用LVGL必须用这个固件
└── libraries
├── imu.py # IMU相关的驱动
├── lcd_2inch8.py # 2.8寸屏幕相关的驱动,包括显示和触摸
├── lv_port.py # lvgl相关
├── lv_utils.py # lvgl相关
└── rtc.py # RTC相关的驱动
烧录固件
- 按住板子的BOOT按键,通过 Type-C 线将板子接到电脑的 USB 接口,然后松开按键,电脑会将识别为一个可移动盘,最后将 firmware/RP2350-Touch-LCD-2.8.uf2 文件复制到可移动盘即可。
上传libraries
- 打开 Thonny ,点击 Stop/Restart backend ,下面的shell出现下图的信息则说明板子连接成功。
- 选择 libraries ,鼠标右键-->Upload to / ,等待上传完成
运行
- 打开 examples 里面任意一个 .py 点击 Run current script, 程序就开始运行了
