Google Chat: zj734465502@gmail.com
+86-0755-88291180
sales01@spotpear.com
dragon_manager@163.com
services01@spotpear.com
manager01@spotpear.com
WhatsApp:13246739196
RP2350-Touch-LCD-2.8 is a low-cost, high-performance MCU board designed by Waveshare. It features a 2.8inch LCD display, Li-ion battery recharging chip, 6-axis sensor (3-axis accelerometer and 3-axis gyroscope), RTC and other peripherals, making it easy to develop and embed into the product. It can run GUI interface programs such as LVGL smoothly.
LCD parameters | |||
Display Panel | IPS | Display Size | 2.8inch |
Display Resolution | 480 × 480 | Contrast | 1200:1 |
Communication interface | RGB | Display IC | ST7701 |
Touch Port | I2C | Touch IC | GT911 |
IMU parameters | |||
Sensor Name | QMI8658 | ||
Accelerometer Characteristics | Resolution: 16 bits Measuring Range (optional): ±2, ±4, ±8, ±16g | ||
Gyroscope Characteristics | Resolution: 16 bits Measuring Range (optional): ±16, ±32, ±64, ±128, ±256, ±512, ±1024, ±2048°/sec |
In order to facilitate the development of Pico/Pico2 boards using MicroPython on a computer, it is recommended to download the Thonny IDE
【MicroPython】 machine.Pin class function details
【MicroPython】machine.PWM class function details
【MicroPython】machine.ADC class function details
【MicroPython】machine.UART class function details
【MicroPython】machine.I2C class function details
【MicroPython】machine.SPI class function details
【MicroPython】rp2.StateMachine class function details
For C/C++, it is recommended to use Pico VSCode for development. This is a Microsoft Visual Studio Code extension designed to make it easier for you to create, develop, and debug projects for the Raspberry Pi Pico series development boards. No matter if you are a beginner or an experienced professional, this tool can assist you in developing Pico with confidence and ease. Here's how to install and use the extension.
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
Here are two methods for flashing firmware
1. Press and hold the Boot button 2. Connect the development board to the computer 3. Then the computer will recognize the development board as a USB device. 4. Copy the .uf2 file to the USB drive, and the device will automatically restart, indicating successful program flashing.
set(PICO_BOARD pico CACHE STRING "Board type")
https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
Note: If you already have an ESP32 board URL, you can use a comma to separate the URLs as follows:
https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
MircoPython video demo (github)
MicroPython firmware/Blink demos (C)
Raspberry Pi official C/C++ demo (github)
Raspberry Pi official micropython demo (github)
Arduino official C/C++ demo (github)
├── CMakeLists.txt ├── example_auto_set_url.cmake ├── examples # Demos │ ├── CMakeLists.txt │ ├── adc_battery # Demo of serial port printing battery voltage │ ├── button # Demo of obtaining BOOT button status │ ├── buzzer # Demo of driving buzzer │ ├── gui # Demo of using GUI library to display content on LCD │ ├── hello_world # Demo of printing hello world │ │ ├── CMakeLists.txt │ │ ├── serial │ │ └── usb │ ├── lcd # Demo of Testing LCD │ │ ├── CMakeLists.txt │ │ ├── lcd_flush_rgb │ │ ├── lcd_image │ │ └── lcd_touch │ ├── lvgl # Demos using LVGL │ │ ├── CMakeLists.txt │ │ ├── factory # Pre-installed demo │ │ ├── lv_port # Source files for LVGL hardware integration │ │ ├── lvgl_example # Demo of running LVGL's own demo │ │ ├── lvgl_pcf85063 # Demo of using LVGL to display time and date │ │ └── lvgl_qmi8658 # Demo of using LVGL to display IMU data │ ├── qmi8658_raw_out # Demo of using serial port to print IMU data │ ├── rtc_pcf85063 # Demo of using serial port to print time and date │ └── sd_card_spi # Demo for testing TF Card read and write ├── libraries # Library files │ ├── CMakeLists.txt │ ├── Fonts │ ├── GUI │ ├── bsp # Hardware-related libraries │ ├── lvgl # LVGL library │ └── no-OS-FatFS-SD-SDIO-SPI-RPi-Pico # TF Card related libraries ├── 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)
You can refer to the RP2350-E9 section in the RP2350 Datasheet
Monday-Friday (9:30-6:30) Saturday (9:30-5:30)
Email: services01@spotpear.com