本产品是一款微雪 (Waveshare) 设计的低成本、高性能的微控制器开发板,板载 2.8 英寸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)、RTC等外设,方便开发并嵌入应用到产品中。可流畅运行 LVGL 等 GUI 界面程序。
LCD参数 | |||
显示面板 | IPS | 显示尺寸 | 2.8 英寸 |
显示分辨率 | 480 × 480 | 对比度 | 1200:1 |
通信接口 | RGB | 显示 IC | ST7701 |
触控接口 | I2C | 触控 IC | GT911 |
IMU参数 | |||
传感器名称 | QMI8658 | ||
加速度计特性 | 分辨率:16 位 量程 (可选):±2、±4、±8、±16g | ||
陀螺仪特性 | 分辨率:16 位 量程 (可选):±16、±32、±64、±128、±256、±512、 ±1024、±2048°/sec |
| ||
|
为了方便在电脑上使用MicroPython开发Pico/Pico2板,建议下载Thonny IDE
【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解
对于 C/C++,建议使用 Pico VSCode 进行开发,这是一款 Microsoft Visual Studio Code 扩展,旨在让您在为 Raspberry Pi Pico 系列开发板创建、开发和调试项目时更加轻松。无论您是初学者还是经验丰富的专业人士,此工具都可以帮助您自信而轻松地进行 Pico 开发。下面我们介绍如何安装该扩展并使用。
Cmake Path: ${HOME}/.pico-sdk/cmake/v3.28.6/bin/cmake.exe Git Path: ${HOME}/.pico-sdk/git/cmd/git.exe Ninja Path: ${HOME}/.pico-sdk/ninja/v1.12.1/ninja.exe Python3 Path: ${HOME}/.pico-sdk/python/3.12.1/python.exe
这里提供两种方法烧录固件
1.按住Boot按键 2.将开发板连接到电脑上 3.然后会电脑会将开发板识别成一个U盘设备 4.将.uf2文件复制到U盘中,设备就会自动重启,程序烧录成功
set(PICO_BOARD pico CACHE STRING "Board type")
https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:
https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
C:\Users\[username]\AppData\Local\Arduino15\packages
注意:将里面用户名:[username]替换成自己的用户名
MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)
├── CMakeLists.txt ├── example_auto_set_url.cmake ├── examples # 示例程序 │ ├── CMakeLists.txt │ ├── adc_battery # 串口打印电池电压的示例 │ ├── button # 获取BOOT按键状态的示例 │ ├── buzzer # 驱动蜂鸣器示例 │ ├── gui # lcd使用GUI库显示内容示例 │ ├── hello_world # 打印 hello world 的示例 │ │ ├── CMakeLists.txt │ │ ├── serial │ │ └── usb │ ├── lcd # 测试LCD的示例 │ │ ├── CMakeLists.txt │ │ ├── lcd_flush_rgb │ │ ├── lcd_image │ │ └── lcd_touch │ ├── lvgl # 一些使用LVGL的示例 │ │ ├── CMakeLists.txt │ │ ├── factory # 出厂自带的程序 │ │ ├── lv_port # LVGL对接硬件的源文件 │ │ ├── lvgl_example # 运行LVGL自带Demo的示例 │ │ ├── lvgl_pcf85063 # 使用LVGL显示时间和日期的示例 │ │ └── lvgl_qmi8658 # 使用LVGL显示IMU数据的示例 │ ├── qmi8658_raw_out # 使用串口打印IMU数据的示例 │ ├── rtc_pcf85063 # 使用串口打印时间、日期的示例 │ └── sd_card_spi # 测试SD Card读写的示例 ├── libraries # 库文件 │ ├── CMakeLists.txt │ ├── Fonts │ ├── GUI │ ├── bsp # 硬件相关的库 │ ├── lvgl # LVGL库 │ └── no-OS-FatFS-SD-SDIO-SPI-RPi-Pico # SD Card 相关的库 ├── pico_extras_import_optional.cmake └── pico_sdk_import.cmake
cd RP2350-Touch-LCD-2.8C-Demo/C mkdir build cd build cmake .. make -j8
add_executable(lvgl_test lvgl_test.c ../lv_port/lv_port_disp.c ../lv_port/lv_port_indev.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) target_compile_definitions(lvgl_test PRIVATE PICO_EMBED_XIP_SETUP=1 ) # create map/bin/hex/uf2 file etc. pico_add_extra_outputs(lvgl_test)
#include <stdio.h> #include "pico/stdlib.h" #include "bsp_i2c.h" #include "../lv_port/lv_port_disp.h" #include "../lv_port/lv_port_indev.h" #include "demos/lv_demos.h" #include "hardware/pll.h" #include "hardware/clocks.h" #include "hardware/structs/pll.h" #include "hardware/structs/clocks.h" #define LVGL_TICK_PERIOD_MS 10 void set_cpu_clock(uint32_t freq_Mhz) { set_sys_clock_khz(freq_Mhz * 1000, true); clock_configure( clk_peri, 0, CLOCKS_CLK_PERI_CTRL_AUXSRC_VALUE_CLKSRC_PLL_SYS, freq_Mhz * 1000 * 1000, freq_Mhz * 1000 * 1000); } static bool repeating_lvgl_timer_cb(struct repeating_timer *t) { lv_tick_inc(LVGL_TICK_PERIOD_MS); return true; } int main() { static struct repeating_timer lvgl_timer; set_cpu_clock(240); stdio_init_all(); bsp_i2c_init(); lv_init(); lv_port_disp_init(); lv_port_indev_init(); add_repeating_timer_ms(LVGL_TICK_PERIOD_MS, repeating_lvgl_timer_cb, NULL, &lvgl_timer); // lv_demo_benchmark(); lv_demo_music(); // lv_demo_widgets(); while (true) { lv_timer_handler(); sleep_ms(LVGL_TICK_PERIOD_MS); } }
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/lvgl_test)
可以参考RP2350-datasheet中RP2350-E9部分内容
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841