Browse Source

添加触摸屏

master
sc 1 month ago
parent
commit
4f8260accc
  1. 16
      .config
  2. 44
      .cproject
  3. 2
      .project
  4. 2
      .settings/language.settings.xml
  5. 6
      applications/lvgl/lv__user_gui.c
  6. 246
      applications/lvgl/lv_port_indev.c
  7. 12
      cubemx/Src/main.c
  8. 139
      cubemx/Src/stm32h7xx_hal_msp.c
  9. 108
      cubemx/cubemx.ioc
  10. 8
      drivers/board.h
  11. 15
      drivers/ltdc.c
  12. 1
      packages/LVGL-v8.3.11/demos/widgets/lv_demo_widgets.h
  13. 8
      packages/LVGL-v8.3.11/lv_conf.h
  14. 1
      packages/LVGL-v8.3.11/lvgl.h
  15. 5
      packages/pkgs.json
  16. 6
      rtconfig.h

16
.config

@ -185,7 +185,11 @@ CONFIG_RT_USING_SERIAL_V1=y
CONFIG_RT_SERIAL_RB_BUFSZ=512
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_CPUTIME is not set
# CONFIG_RT_USING_I2C is not set
CONFIG_RT_USING_I2C=y
# CONFIG_RT_I2C_DEBUG is not set
CONFIG_RT_USING_I2C_BITOPS=y
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
# CONFIG_RT_USING_SOFT_I2C is not set
# CONFIG_RT_USING_PHY is not set
# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
@ -222,7 +226,7 @@ CONFIG_RT_USING_WDT=y
# CONFIG_RT_USING_AUDIO is not set
# CONFIG_RT_USING_SENSOR is not set
CONFIG_RT_USING_TOUCH=y
# CONFIG_RT_TOUCH_PIN_IRQ is not set
CONFIG_RT_TOUCH_PIN_IRQ=y
CONFIG_RT_USING_LCD=y
# CONFIG_RT_USING_HWCRYPTO is not set
# CONFIG_RT_USING_PULSE_ENCODER is not set
@ -542,7 +546,7 @@ CONFIG_PKG_LVGL_THREAD_STACK_SIZE=4096
CONFIG_PKG_LVGL_DISP_REFR_PERIOD=5
# CONFIG_PKG_USING_LVGL_SQUARELINE is not set
# CONFIG_PKG_LVGL_USING_EXAMPLES is not set
# CONFIG_PKG_LVGL_USING_DEMOS is not set
CONFIG_PKG_LVGL_USING_DEMOS=y
CONFIG_PKG_LVGL_USING_V080311=y
# CONFIG_PKG_LVGL_USING_V080310 is not set
# CONFIG_PKG_LVGL_USING_V08039 is not set
@ -1027,7 +1031,11 @@ CONFIG_PKG_LITTLEFS_VER="v2.11.2"
# CONFIG_PKG_USING_GT917S is not set
# CONFIG_PKG_USING_GT911 is not set
# CONFIG_PKG_USING_FT6206 is not set
# CONFIG_PKG_USING_FT5426 is not set
CONFIG_PKG_USING_FT5426=y
CONFIG_PKG_FT5426_PATH="/packages/peripherals/touch/ft5426"
# CONFIG_PKG_USING_FT5426_SAMPLE is not set
CONFIG_PKG_USING_FT5426_LATEST_VERSION=y
CONFIG_PKG_FT5426_VER="latest"
# CONFIG_PKG_USING_FT6236 is not set
# CONFIG_PKG_USING_XPT2046_TOUCH is not set
# CONFIG_PKG_USING_CST816X is not set

44
.cproject

@ -81,6 +81,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//.}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx/Inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/benchmark}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/keypad_encoder}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music/assets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/stress}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/env_support/rt-thread}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/core}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/draw/arm2d}&quot;" />
@ -143,6 +150,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/cJSON-v1.7.17}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/ft5426-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/littlefs-v2.11.2}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/qmodbus-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/rs485-v1.06/inc}&quot;" />
@ -263,6 +271,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//.}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx/Inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/benchmark}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/keypad_encoder}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music/assets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/stress}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/env_support/rt-thread}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/core}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/draw/arm2d}&quot;" />
@ -325,6 +340,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/cJSON-v1.7.17}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/ft5426-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/littlefs-v2.11.2}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/qmodbus-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/rs485-v1.06/inc}&quot;" />
@ -414,6 +430,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//.}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx/Inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/benchmark}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/keypad_encoder}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music/assets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/stress}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/env_support/rt-thread}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/core}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/draw/arm2d}&quot;" />
@ -476,6 +499,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/cJSON-v1.7.17}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/ft5426-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/littlefs-v2.11.2}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/qmodbus-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/rs485-v1.06/inc}&quot;" />
@ -563,6 +587,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//.}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx/Inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/benchmark}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/keypad_encoder}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music/assets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/stress}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/env_support/rt-thread}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/core}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/draw/arm2d}&quot;" />
@ -625,6 +656,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/cJSON-v1.7.17}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/ft5426-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/littlefs-v2.11.2}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/qmodbus-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/rs485-v1.06/inc}&quot;" />
@ -712,6 +744,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//.}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx/Inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//cubemx}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/benchmark}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/keypad_encoder}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music/assets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/music}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/stress}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/demos}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/env_support/rt-thread}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/core}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/draw/arm2d}&quot;" />
@ -774,6 +813,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src/widgets}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/LVGL-v8.3.11/src}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/cJSON-v1.7.17}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/ft5426-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/littlefs-v2.11.2}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/qmodbus-latest/inc}&quot;" />
<listOptionValue builtIn="false" value="&quot;${workspace_loc://${ProjName}//packages/rs485-v1.06/inc}&quot;" />
@ -810,7 +850,7 @@
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="drivers/drv_ltdc.c|//cubemx/Drivers|//cubemx/EWARM|//cubemx/Src/stm32h7xx_it.c|//cubemx/Src/system_stm32h7xx.c|//packages/LVGL-v8.3.11/demos|//packages/LVGL-v8.3.11/env_support/rt-thread/squareline|//packages/LVGL-v8.3.11/examples|//packages/LVGL-v8.3.11/tests|//packages/littlefs-v2.11.2/runners|//packages/sqlite-v3.19.3/rtthread_io_methods.c|//packages/sqlite-v3.19.3/rtthread_mutex.c|//packages/sqlite-v3.19.3/rtthread_vfs.c|//packages/sqlite-v3.19.3/shell.c|//rt-thread/components/dfs/dfs_v1/filesystems/cromfs|//rt-thread/components/dfs/dfs_v1/filesystems/mqueue|//rt-thread/components/dfs/dfs_v1/filesystems/nfs|//rt-thread/components/dfs/dfs_v1/filesystems/ramfs|//rt-thread/components/dfs/dfs_v1/filesystems/romfs|//rt-thread/components/dfs/dfs_v1/filesystems/skeleton|//rt-thread/components/dfs/dfs_v2|//rt-thread/components/drivers/audio|//rt-thread/components/drivers/can|//rt-thread/components/drivers/clk|//rt-thread/components/drivers/core/dm.c|//rt-thread/components/drivers/core/driver.c|//rt-thread/components/drivers/core/platform.c|//rt-thread/components/drivers/core/platform_ofw.c|//rt-thread/components/drivers/cputime|//rt-thread/components/drivers/fdt|//rt-thread/components/drivers/hwcrypto|//rt-thread/components/drivers/hwtimer|//rt-thread/components/drivers/i2c|//rt-thread/components/drivers/ktime|//rt-thread/components/drivers/misc|//rt-thread/components/drivers/mtd/mtd_nand.c|//rt-thread/components/drivers/ofw|//rt-thread/components/drivers/phy|//rt-thread/components/drivers/pic|//rt-thread/components/drivers/pin/pin_dm.c|//rt-thread/components/drivers/pin/pin_ofw.c|//rt-thread/components/drivers/pinctrl|//rt-thread/components/drivers/pm|//rt-thread/components/drivers/rtc/alarm.c|//rt-thread/components/drivers/rtc/soft_rtc.c|//rt-thread/components/drivers/sensor|//rt-thread/components/drivers/serial/serial_dm.c|//rt-thread/components/drivers/serial/serial_tty.c|//rt-thread/components/drivers/serial/serial_v2.c|//rt-thread/components/drivers/spi/enc28j60.c|//rt-thread/components/drivers/spi/spi-bit-ops.c|//rt-thread/components/drivers/spi/spi_wifi_rw009.c|//rt-thread/components/drivers/usb|//rt-thread/components/drivers/virtio|//rt-thread/components/drivers/wlan|//rt-thread/components/fal/samples/porting/fal_flash_stm32f2_port.c|//rt-thread/components/legacy|//rt-thread/components/libc/compilers/armlibc|//rt-thread/components/libc/compilers/dlib|//rt-thread/components/libc/compilers/musl|//rt-thread/components/libc/compilers/picolibc|//rt-thread/components/libc/cplusplus|//rt-thread/components/libc/posix|//rt-thread/components/lwp|//rt-thread/components/mm|//rt-thread/components/mprotect|//rt-thread/components/net|//rt-thread/components/utilities|//rt-thread/components/vbus|//rt-thread/libcpu/aarch64|//rt-thread/libcpu/arc|//rt-thread/libcpu/arm/AT91SAM7S|//rt-thread/libcpu/arm/AT91SAM7X|//rt-thread/libcpu/arm/am335x|//rt-thread/libcpu/arm/arm926|//rt-thread/libcpu/arm/armv6|//rt-thread/libcpu/arm/common/atomic_arm.c|//rt-thread/libcpu/arm/common/divsi3.S|//rt-thread/libcpu/arm/cortex-a|//rt-thread/libcpu/arm/cortex-m0|//rt-thread/libcpu/arm/cortex-m23|//rt-thread/libcpu/arm/cortex-m3|//rt-thread/libcpu/arm/cortex-m33|//rt-thread/libcpu/arm/cortex-m4|//rt-thread/libcpu/arm/cortex-m7/context_iar.S|//rt-thread/libcpu/arm/cortex-m7/context_rvds.S|//rt-thread/libcpu/arm/cortex-m7/mpu.c|//rt-thread/libcpu/arm/cortex-m85|//rt-thread/libcpu/arm/cortex-r4|//rt-thread/libcpu/arm/cortex-r52|//rt-thread/libcpu/arm/dm36x|//rt-thread/libcpu/arm/lpc214x|//rt-thread/libcpu/arm/lpc24xx|//rt-thread/libcpu/arm/realview-a8-vmm|//rt-thread/libcpu/arm/s3c24x0|//rt-thread/libcpu/arm/s3c44b0|//rt-thread/libcpu/arm/sep4020|//rt-thread/libcpu/arm/zynqmp-r5|//rt-thread/libcpu/avr32|//rt-thread/libcpu/blackfin|//rt-thread/libcpu/c-sky|//rt-thread/libcpu/ia32|//rt-thread/libcpu/m16c|//rt-thread/libcpu/mips|//rt-thread/libcpu/nios|//rt-thread/libcpu/ppc|//rt-thread/libcpu/risc-v|//rt-thread/libcpu/rx|//rt-thread/libcpu/sim|//rt-thread/libcpu/sparc-v8|//rt-thread/libcpu/ti-dsp|//rt-thread/libcpu/unicore32|//rt-thread/libcpu/v850|//rt-thread/libcpu/xilinx|//rt-thread/src/cpu.c|//rt-thread/src/mem.c|//rt-thread/src/scheduler_mp.c|//rt-thread/src/slab.c|//rt-thread/tools" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="" />
<entry excluding="drivers/drv_ltdc.c|//cubemx/Drivers|//cubemx/EWARM|//cubemx/Src/stm32h7xx_it.c|//cubemx/Src/system_stm32h7xx.c|//packages/LVGL-v8.3.11/env_support/rt-thread/squareline|//packages/LVGL-v8.3.11/examples|//packages/LVGL-v8.3.11/tests|//packages/ft5426-latest/examples|//packages/littlefs-v2.11.2/runners|//packages/sqlite-v3.19.3/rtthread_io_methods.c|//packages/sqlite-v3.19.3/rtthread_mutex.c|//packages/sqlite-v3.19.3/rtthread_vfs.c|//packages/sqlite-v3.19.3/shell.c|//rt-thread/components/dfs/dfs_v1/filesystems/cromfs|//rt-thread/components/dfs/dfs_v1/filesystems/mqueue|//rt-thread/components/dfs/dfs_v1/filesystems/nfs|//rt-thread/components/dfs/dfs_v1/filesystems/ramfs|//rt-thread/components/dfs/dfs_v1/filesystems/romfs|//rt-thread/components/dfs/dfs_v1/filesystems/skeleton|//rt-thread/components/dfs/dfs_v2|//rt-thread/components/drivers/audio|//rt-thread/components/drivers/can|//rt-thread/components/drivers/clk|//rt-thread/components/drivers/core/dm.c|//rt-thread/components/drivers/core/driver.c|//rt-thread/components/drivers/core/platform.c|//rt-thread/components/drivers/core/platform_ofw.c|//rt-thread/components/drivers/cputime|//rt-thread/components/drivers/fdt|//rt-thread/components/drivers/hwcrypto|//rt-thread/components/drivers/hwtimer|//rt-thread/components/drivers/i2c/i2c_bus.c|//rt-thread/components/drivers/i2c/i2c_dm.c|//rt-thread/components/drivers/i2c/soft_i2c.c|//rt-thread/components/drivers/ktime|//rt-thread/components/drivers/misc|//rt-thread/components/drivers/mtd/mtd_nand.c|//rt-thread/components/drivers/ofw|//rt-thread/components/drivers/phy|//rt-thread/components/drivers/pic|//rt-thread/components/drivers/pin/pin_dm.c|//rt-thread/components/drivers/pin/pin_ofw.c|//rt-thread/components/drivers/pinctrl|//rt-thread/components/drivers/pm|//rt-thread/components/drivers/rtc/alarm.c|//rt-thread/components/drivers/rtc/soft_rtc.c|//rt-thread/components/drivers/sensor|//rt-thread/components/drivers/serial/serial_dm.c|//rt-thread/components/drivers/serial/serial_tty.c|//rt-thread/components/drivers/serial/serial_v2.c|//rt-thread/components/drivers/spi/enc28j60.c|//rt-thread/components/drivers/spi/spi-bit-ops.c|//rt-thread/components/drivers/spi/spi_wifi_rw009.c|//rt-thread/components/drivers/usb|//rt-thread/components/drivers/virtio|//rt-thread/components/drivers/wlan|//rt-thread/components/fal/samples/porting/fal_flash_stm32f2_port.c|//rt-thread/components/legacy|//rt-thread/components/libc/compilers/armlibc|//rt-thread/components/libc/compilers/dlib|//rt-thread/components/libc/compilers/musl|//rt-thread/components/libc/compilers/picolibc|//rt-thread/components/libc/cplusplus|//rt-thread/components/libc/posix|//rt-thread/components/lwp|//rt-thread/components/mm|//rt-thread/components/mprotect|//rt-thread/components/net|//rt-thread/components/utilities|//rt-thread/components/vbus|//rt-thread/libcpu/aarch64|//rt-thread/libcpu/arc|//rt-thread/libcpu/arm/AT91SAM7S|//rt-thread/libcpu/arm/AT91SAM7X|//rt-thread/libcpu/arm/am335x|//rt-thread/libcpu/arm/arm926|//rt-thread/libcpu/arm/armv6|//rt-thread/libcpu/arm/common/atomic_arm.c|//rt-thread/libcpu/arm/common/divsi3.S|//rt-thread/libcpu/arm/cortex-a|//rt-thread/libcpu/arm/cortex-m0|//rt-thread/libcpu/arm/cortex-m23|//rt-thread/libcpu/arm/cortex-m3|//rt-thread/libcpu/arm/cortex-m33|//rt-thread/libcpu/arm/cortex-m4|//rt-thread/libcpu/arm/cortex-m7/context_iar.S|//rt-thread/libcpu/arm/cortex-m7/context_rvds.S|//rt-thread/libcpu/arm/cortex-m7/mpu.c|//rt-thread/libcpu/arm/cortex-m85|//rt-thread/libcpu/arm/cortex-r4|//rt-thread/libcpu/arm/cortex-r52|//rt-thread/libcpu/arm/dm36x|//rt-thread/libcpu/arm/lpc214x|//rt-thread/libcpu/arm/lpc24xx|//rt-thread/libcpu/arm/realview-a8-vmm|//rt-thread/libcpu/arm/s3c24x0|//rt-thread/libcpu/arm/s3c44b0|//rt-thread/libcpu/arm/sep4020|//rt-thread/libcpu/arm/zynqmp-r5|//rt-thread/libcpu/avr32|//rt-thread/libcpu/blackfin|//rt-thread/libcpu/c-sky|//rt-thread/libcpu/ia32|//rt-thread/libcpu/m16c|//rt-thread/libcpu/mips|//rt-thread/libcpu/nios|//rt-thread/libcpu/ppc|//rt-thread/libcpu/risc-v|//rt-thread/libcpu/rx|//rt-thread/libcpu/sim|//rt-thread/libcpu/sparc-v8|//rt-thread/libcpu/ti-dsp|//rt-thread/libcpu/unicore32|//rt-thread/libcpu/v850|//rt-thread/libcpu/xilinx|//rt-thread/src/cpu.c|//rt-thread/src/mem.c|//rt-thread/src/scheduler_mp.c|//rt-thread/src/slab.c|//rt-thread/tools" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="" />
</sourceEntries>
</configuration>
</storageModule>
@ -830,7 +870,7 @@
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders" />
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Debug">
<resource resourceType="PROJECT" workspacePath="/project" />
<resource resourceType="PROJECT" workspacePath="/828F" />
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets" />

2
.project

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>project</name>
<name>828F</name>
<comment />
<projects>
</projects>

2
.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1097543617415771829" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1186448683892017461" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

6
applications/lvgl/lv__user_gui.c

@ -11,6 +11,7 @@
#include <rtdevice.h>
#include <board.h>
#include "lvgl.h"
#include "lv_demo_widgets.h"
#define DBG_TAG "gui"
#define DBG_LVL DBG_LOG
@ -43,7 +44,8 @@ static void btn_led_off_evt_handler(lv_event_t *e)
void lv_user_gui_init(void)
{
lv_obj_t *scr = lv_scr_act();
lv_demo_widgets();
/* lv_obj_t *scr = lv_scr_act();
// 创建“按钮” —— 实际是一个可点击的普通对象
lv_obj_t *btn_on = lv_obj_create(scr);
@ -69,5 +71,5 @@ void lv_user_gui_init(void)
lv_label_set_text(label_off, "LED OFF");
lv_obj_center(label_off);
lv_obj_add_event_cb(btn_off, btn_led_off_evt_handler, LV_EVENT_CLICKED, NULL);
lv_obj_add_event_cb(btn_off, btn_led_off_evt_handler, LV_EVENT_CLICKED, NULL);*/
}

246
applications/lvgl/lv_port_indev.c

@ -11,7 +11,11 @@
*********************/
#include "lv_port_indev.h"
#include "../../lvgl.h"
#include "ft5426.h"
#define DBG_TAG "LVGL_DEV"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
/*********************
* DEFINES
*********************/
@ -29,18 +33,18 @@ static void touchpad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
static bool touchpad_is_pressed(void);
static void touchpad_get_xy(lv_coord_t * x, lv_coord_t * y);
static void mouse_init(void);
static void mouse_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
static bool mouse_is_pressed(void);
static void mouse_get_xy(lv_coord_t * x, lv_coord_t * y);
//static void mouse_init(void);
//static void mouse_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
//static bool mouse_is_pressed(void);
//static void mouse_get_xy(lv_coord_t * x, lv_coord_t * y);
static void keypad_init(void);
static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
static uint32_t keypad_get_key(void);
//static void keypad_init(void);
//static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
//static uint32_t keypad_get_key(void);
static void encoder_init(void);
static void encoder_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
static void encoder_handler(void);
//static void encoder_init(void);
//static void encoder_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
//static void encoder_handler(void);
static void button_init(void);
static void button_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
@ -51,13 +55,13 @@ static bool button_is_pressed(uint8_t id);
* STATIC VARIABLES
**********************/
lv_indev_t * indev_touchpad;
lv_indev_t * indev_mouse;
lv_indev_t * indev_keypad;
lv_indev_t * indev_encoder;
//lv_indev_t * indev_mouse;
//lv_indev_t * indev_keypad;
//lv_indev_t * indev_encoder;
lv_indev_t * indev_button;
static int32_t encoder_diff;
static lv_indev_state_t encoder_state;
//static int32_t encoder_diff;
//static lv_indev_state_t encoder_state;
/**********************
* MACROS
@ -81,7 +85,7 @@ void lv_port_indev_init(void)
* You should shape them according to your hardware
*/
static lv_indev_drv_t indev_drv;
static lv_indev_drv_t indev_touch_drv ,indev_button_drv;
/*------------------
* Touchpad
@ -91,41 +95,41 @@ void lv_port_indev_init(void)
touchpad_init();
/*Register a touchpad input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = touchpad_read;
indev_touchpad = lv_indev_drv_register(&indev_drv);
lv_indev_drv_init(&indev_touch_drv);
indev_touch_drv.type = LV_INDEV_TYPE_POINTER;
indev_touch_drv.read_cb = touchpad_read;
indev_touchpad = lv_indev_drv_register(&indev_touch_drv);
/*------------------
* Mouse
* -----------------*/
/*Initialize your mouse if you have*/
mouse_init();
//mouse_init();
/*Register a mouse input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = mouse_read;
indev_mouse = lv_indev_drv_register(&indev_drv);
//lv_indev_drv_init(&indev_drv);
//indev_drv.type = LV_INDEV_TYPE_POINTER;
//indev_drv.read_cb = mouse_read;
//indev_mouse = lv_indev_drv_register(&indev_drv);
/*Set cursor. For simplicity set a HOME symbol now.*/
lv_obj_t * mouse_cursor = lv_img_create(lv_scr_act());
lv_img_set_src(mouse_cursor, LV_SYMBOL_HOME);
lv_indev_set_cursor(indev_mouse, mouse_cursor);
//lv_obj_t * mouse_cursor = lv_img_create(lv_scr_act());
//lv_img_set_src(mouse_cursor, LV_SYMBOL_HOME);
//lv_indev_set_cursor(indev_mouse, mouse_cursor);
/*------------------
* Keypad
* -----------------*/
/*Initialize your keypad or keyboard if you have*/
keypad_init();
//keypad_init();
/*Register a keypad input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_KEYPAD;
indev_drv.read_cb = keypad_read;
indev_keypad = lv_indev_drv_register(&indev_drv);
//lv_indev_drv_init(&indev_drv);
//indev_drv.type = LV_INDEV_TYPE_KEYPAD;
//indev_drv.read_cb = keypad_read;
//indev_keypad = lv_indev_drv_register(&indev_drv);
/*Later you should create group(s) with `lv_group_t * group = lv_group_create()`,
*add objects to the group with `lv_group_add_obj(group, obj)`
@ -137,13 +141,13 @@ void lv_port_indev_init(void)
* -----------------*/
/*Initialize your encoder if you have*/
encoder_init();
//encoder_init();
/*Register a encoder input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_ENCODER;
indev_drv.read_cb = encoder_read;
indev_encoder = lv_indev_drv_register(&indev_drv);
//lv_indev_drv_init(&indev_drv);
//indev_drv.type = LV_INDEV_TYPE_ENCODER;
//indev_drv.read_cb = encoder_read;
//indev_encoder = lv_indev_drv_register(&indev_drv);
/*Later you should create group(s) with `lv_group_t * group = lv_group_create()`,
*add objects to the group with `lv_group_add_obj(group, obj)`
@ -158,10 +162,10 @@ void lv_port_indev_init(void)
button_init();
/*Register a button input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_BUTTON;
indev_drv.read_cb = button_read;
indev_button = lv_indev_drv_register(&indev_drv);
lv_indev_drv_init(&indev_button_drv);
indev_button_drv.type = LV_INDEV_TYPE_BUTTON;
indev_button_drv.read_cb = button_read;
indev_button = lv_indev_drv_register(&indev_button_drv);
/*Assign buttons to points on the screen*/
static const lv_point_t btn_points[2] = {
@ -180,6 +184,42 @@ void lv_port_indev_init(void)
* -----------------*/
/*Initialize your touchpad*/
struct rt_touch_data *read_data;
rt_device_t touch;
void touchpad_thread_entry(void *parameter)
{
read_data = (struct rt_touch_data *)rt_calloc(1, sizeof(struct rt_touch_data));
while(1)
{
rt_device_read(touch, 0, read_data, 1);
rt_thread_delay(10);
}
}
int touchpad_example(void)
{
struct rt_touch_config cfg;
cfg.dev_name = "i2c1";
rt_hw_ft5426_init("touch", &cfg);
touch = rt_device_find("touch");
rt_device_open(touch, RT_DEVICE_FLAG_RDONLY);
rt_thread_t touchpad_thread = rt_thread_create("touch", touchpad_thread_entry, RT_NULL, 800, 10, 20);
if (touchpad_thread == RT_NULL)
{
LOG_D("create touchpad thread err");
return -RT_ENOMEM;
}
rt_thread_startup(touchpad_thread);
return RT_EOK;
}
INIT_APP_EXPORT(touchpad_example);
static void touchpad_init(void)
{
/*Your code comes here*/
@ -194,15 +234,16 @@ static void touchpad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
/*Save the pressed coordinates and the state*/
if(touchpad_is_pressed()) {
touchpad_get_xy(&last_x, &last_y);
/*Set the last pressed coordinates*/
data->point.x = last_y;
data->point.y = last_x;
data->state = LV_INDEV_STATE_PR;
}
else {
data->state = LV_INDEV_STATE_REL;
}
/*Set the last pressed coordinates*/
data->point.x = last_x;
data->point.y = last_y;
}
/*Return true is the touchpad is pressed*/
@ -210,6 +251,9 @@ static bool touchpad_is_pressed(void)
{
/*Your code comes here*/
if (read_data->event == RT_TOUCH_EVENT_DOWN) return true;
if (read_data->event == RT_TOUCH_EVENT_MOVE) return true;
if (read_data->event == RT_TOUCH_EVENT_UP) return true;
return false;
}
@ -217,78 +261,78 @@ static bool touchpad_is_pressed(void)
static void touchpad_get_xy(lv_coord_t * x, lv_coord_t * y)
{
/*Your code comes here*/
(*x) = 0;
(*y) = 0;
(*x) = read_data->x_coordinate;
(*y) = read_data->y_coordinate;
}
/*------------------
* Mouse
* -----------------*/
/*Initialize your mouse*/
static void mouse_init(void)
{
//static void mouse_init(void)
//{
/*Your code comes here*/
}
//}
/*Will be called by the library to read the mouse*/
static void mouse_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
{
//static void mouse_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
//{
/*Get the current x and y coordinates*/
mouse_get_xy(&data->point.x, &data->point.y);
// mouse_get_xy(&data->point.x, &data->point.y);
/*Get whether the mouse button is pressed or released*/
if(mouse_is_pressed()) {
data->state = LV_INDEV_STATE_PR;
}
else {
data->state = LV_INDEV_STATE_REL;
}
}
// if(mouse_is_pressed()) {
// data->state = LV_INDEV_STATE_PR;
// }
// else {
// data->state = LV_INDEV_STATE_REL;
// }
//}
/*Return true is the mouse button is pressed*/
static bool mouse_is_pressed(void)
{
//static bool mouse_is_pressed(void)
//{
/*Your code comes here*/
return false;
}
// return false;
//}
/*Get the x and y coordinates if the mouse is pressed*/
static void mouse_get_xy(lv_coord_t * x, lv_coord_t * y)
{
//static void mouse_get_xy(lv_coord_t * x, lv_coord_t * y)
//{
/*Your code comes here*/
(*x) = 0;
(*y) = 0;
}
// (*x) = 0;
// (*y) = 0;
//}
/*------------------
* Keypad
* -----------------*/
/*Initialize your keypad*/
static void keypad_init(void)
{
//static void keypad_init(void)
//{
/*Your code comes here*/
}
//}
/*Will be called by the library to read the mouse*/
static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
{
static uint32_t last_key = 0;
//static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
//{
// static uint32_t last_key = 0;
/*Get the current x and y coordinates*/
mouse_get_xy(&data->point.x, &data->point.y);
// mouse_get_xy(&data->point.x, &data->point.y);
/*Get whether the a key is pressed and save the pressed key*/
uint32_t act_key = keypad_get_key();
if(act_key != 0) {
data->state = LV_INDEV_STATE_PR;
// uint32_t act_key = keypad_get_key();
// if(act_key != 0) {
// data->state = LV_INDEV_STATE_PR;
/*Translate the keys to LVGL control characters according to your key definitions*/
switch(act_key) {
/* switch(act_key) {
case 1:
act_key = LV_KEY_NEXT;
break;
@ -312,43 +356,43 @@ static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
data->state = LV_INDEV_STATE_REL;
}
data->key = last_key;
}
data->key = last_key;*/
//}
/*Get the currently being pressed key. 0 if no key is pressed*/
static uint32_t keypad_get_key(void)
{
//static uint32_t keypad_get_key(void)
//{
/*Your code comes here*/
return 0;
}
// return 0;
//}
/*------------------
* Encoder
* -----------------*/
/*Initialize your keypad*/
static void encoder_init(void)
{
//static void encoder_init(void)
//{
/*Your code comes here*/
}
//}
/*Will be called by the library to read the encoder*/
static void encoder_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
{
//static void encoder_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
//{
data->enc_diff = encoder_diff;
data->state = encoder_state;
}
// data->enc_diff = encoder_diff;
// data->state = encoder_state;
//}
/*Call this function in an interrupt to process encoder events (turn, press)*/
static void encoder_handler(void)
{
//static void encoder_handler(void)
//{
/*Your code comes here*/
encoder_diff += 0;
encoder_state = LV_INDEV_STATE_REL;
}
// encoder_diff += 0;
// encoder_state = LV_INDEV_STATE_REL;
//}
/*------------------
* Button

12
cubemx/Src/main.c

@ -712,7 +712,7 @@ static void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_11, GPIO_PIN_RESET);
/*Configure GPIO pins : PB0 PB1 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
@ -721,13 +721,19 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PD11 PD12 */
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
/*Configure GPIO pin : PD11 */
GPIO_InitStruct.Pin = GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : PD12 PD13 */
GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */

139
cubemx/Src/stm32h7xx_hal_msp.c

@ -84,13 +84,13 @@ void HAL_MspInit(void)
*/
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
{
//if(hdma2d->Instance==DMA2D)
if(hdma2d->Instance==DMA2D)
{
/* USER CODE BEGIN DMA2D_MspInit 0 */
/* USER CODE END DMA2D_MspInit 0 */
/* Peripheral clock enable */
// __HAL_RCC_DMA2D_CLK_ENABLE();
__HAL_RCC_DMA2D_CLK_ENABLE();
/* USER CODE BEGIN DMA2D_MspInit 1 */
/* USER CODE END DMA2D_MspInit 1 */
@ -127,143 +127,8 @@ void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
* @param hltdc: LTDC handle pointer
* @retval None
*/
/*void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hltdc->Instance==LTDC)
{
// USER CODE BEGIN LTDC_MspInit 0
// USER CODE END LTDC_MspInit 0
// Initializes the peripherals clock
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLL3.PLL3M = 32;
PeriphClkInitStruct.PLL3.PLL3N = 129;
PeriphClkInitStruct.PLL3.PLL3P = 2;
PeriphClkInitStruct.PLL3.PLL3Q = 2;
PeriphClkInitStruct.PLL3.PLL3R = 5;
PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_1;
PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOWIDE;
PeriphClkInitStruct.PLL3.PLL3FRACN = 0;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}
// Peripheral clock enable
__HAL_RCC_LTDC_CLK_ENABLE();
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOI_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
//LTDC GPIO Configuration
PE5 ------> LTDC_G0
PE6 ------> LTDC_G1
PI9 ------> LTDC_VSYNC
PI10 ------> LTDC_HSYNC
PF10 ------> LTDC_DE
PA2 ------> LTDC_R1
PH8 ------> LTDC_R2
PH9 ------> LTDC_R3
PH10 ------> LTDC_R4
PH11 ------> LTDC_R5
PH12 ------> LTDC_R6
PG6 ------> LTDC_R7
PG7 ------> LTDC_CLK
PA8 ------> LTDC_B3
PH13 ------> LTDC_G2
PH14 ------> LTDC_G3
PH15 ------> LTDC_G4
PI0 ------> LTDC_G5
PI1 ------> LTDC_G6
PI2 ------> LTDC_G7
PD6 ------> LTDC_B2
PG12 ------> LTDC_B1
PG13 ------> LTDC_R0
PG14 ------> LTDC_B0
PI4 ------> LTDC_B4
PI5 ------> LTDC_B5
PI6 ------> LTDC_B6
//PI7 ------> LTDC_B7
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1
|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_12|GPIO_PIN_13
|GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF13_LTDC;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
//LTDC interrupt Init
HAL_NVIC_SetPriority(LTDC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(LTDC_IRQn);
// USER CODE BEGIN LTDC_MspInit 1
// USER CODE END LTDC_MspInit 1
}
}
*/
/**
* @brief LTDC MSP De-Initialization
* This function freeze the hardware resources used in this example

108
cubemx/cubemx.ioc

@ -132,55 +132,56 @@ Mcu.Pin48=PD10
Mcu.Pin49=PD11
Mcu.Pin5=PF1
Mcu.Pin50=PD12
Mcu.Pin51=PD14
Mcu.Pin52=PD15
Mcu.Pin53=PG2
Mcu.Pin54=PG4
Mcu.Pin55=PG5
Mcu.Pin56=PG6
Mcu.Pin57=PG7
Mcu.Pin58=PG8
Mcu.Pin59=PC8
Mcu.Pin51=PD13
Mcu.Pin52=PD14
Mcu.Pin53=PD15
Mcu.Pin54=PG2
Mcu.Pin55=PG4
Mcu.Pin56=PG5
Mcu.Pin57=PG6
Mcu.Pin58=PG7
Mcu.Pin59=PG8
Mcu.Pin6=PF2
Mcu.Pin60=PC9
Mcu.Pin61=PA8
Mcu.Pin62=PA9
Mcu.Pin63=PA10
Mcu.Pin64=PH13
Mcu.Pin65=PH14
Mcu.Pin66=PH15
Mcu.Pin67=PI0
Mcu.Pin68=PI1
Mcu.Pin69=PI2
Mcu.Pin60=PC8
Mcu.Pin61=PC9
Mcu.Pin62=PA8
Mcu.Pin63=PA9
Mcu.Pin64=PA10
Mcu.Pin65=PH13
Mcu.Pin66=PH14
Mcu.Pin67=PH15
Mcu.Pin68=PI0
Mcu.Pin69=PI1
Mcu.Pin7=PF3
Mcu.Pin70=PC10
Mcu.Pin71=PC11
Mcu.Pin72=PC12
Mcu.Pin73=PD0
Mcu.Pin74=PD1
Mcu.Pin75=PD2
Mcu.Pin76=PD5
Mcu.Pin77=PD6
Mcu.Pin78=PG12
Mcu.Pin79=PG13
Mcu.Pin70=PI2
Mcu.Pin71=PC10
Mcu.Pin72=PC11
Mcu.Pin73=PC12
Mcu.Pin74=PD0
Mcu.Pin75=PD1
Mcu.Pin76=PD2
Mcu.Pin77=PD5
Mcu.Pin78=PD6
Mcu.Pin79=PG12
Mcu.Pin8=PF4
Mcu.Pin80=PG14
Mcu.Pin81=PG15
Mcu.Pin82=PB6
Mcu.Pin83=PE0
Mcu.Pin84=PE1
Mcu.Pin85=PI4
Mcu.Pin86=PI5
Mcu.Pin87=PI6
Mcu.Pin88=PI7
Mcu.Pin89=VP_DMA2D_VS_DMA2D
Mcu.Pin80=PG13
Mcu.Pin81=PG14
Mcu.Pin82=PG15
Mcu.Pin83=PB6
Mcu.Pin84=PE0
Mcu.Pin85=PE1
Mcu.Pin86=PI4
Mcu.Pin87=PI5
Mcu.Pin88=PI6
Mcu.Pin89=PI7
Mcu.Pin9=PF5
Mcu.Pin90=VP_IWDG1_VS_IWDG
Mcu.Pin91=VP_RTC_VS_RTC_Activate
Mcu.Pin92=VP_RTC_VS_RTC_Calendar
Mcu.Pin93=VP_SYS_VS_Systick
Mcu.Pin94=VP_MEMORYMAP_VS_MEMORYMAP
Mcu.PinsNb=95
Mcu.Pin90=VP_DMA2D_VS_DMA2D
Mcu.Pin91=VP_IWDG1_VS_IWDG
Mcu.Pin92=VP_RTC_VS_RTC_Activate
Mcu.Pin93=VP_RTC_VS_RTC_Calendar
Mcu.Pin94=VP_SYS_VS_Systick
Mcu.Pin95=VP_MEMORYMAP_VS_MEMORYMAP
Mcu.PinsNb=96
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H743IITx
@ -241,7 +242,9 @@ PD10.Signal=FMC_D15_DA15
PD11.Locked=true
PD11.Signal=GPIO_Output
PD12.Locked=true
PD12.Signal=GPIO_Output
PD12.Signal=GPIO_Analog
PD13.Locked=true
PD13.Signal=GPIO_Analog
PD14.Signal=FMC_D0_DA0
PD15.Signal=FMC_D1_DA1
PD2.Mode=SD_4_bits_Wide_bus
@ -417,17 +420,18 @@ RCC.DFSDMFreq_Value=120000000
RCC.DIVM1=4
RCC.DIVN1=60
RCC.DIVN2=200
RCC.DIVN3=128
RCC.DIVP1Freq_Value=480000000
RCC.DIVP2Freq_Value=200000000
RCC.DIVP3Freq_Value=129000000
RCC.DIVP3Freq_Value=128000000
RCC.DIVQ1=6
RCC.DIVQ1Freq_Value=160000000
RCC.DIVQ2Freq_Value=200000000
RCC.DIVQ3Freq_Value=129000000
RCC.DIVQ3Freq_Value=128000000
RCC.DIVR1Freq_Value=480000000
RCC.DIVR2Freq_Value=200000000
RCC.DIVR3=5
RCC.DIVR3Freq_Value=51600000
RCC.DIVR3Freq_Value=51200000
RCC.FDCANFreq_Value=160000000
RCC.FMCCLockSelection=RCC_FMCCLKSOURCE_PLL
RCC.FMCFreq_Value=160000000
@ -438,12 +442,12 @@ RCC.HPRE=RCC_HCLK_DIV2
RCC.HRTIMFreq_Value=240000000
RCC.I2C123Freq_Value=120000000
RCC.I2C4Freq_Value=120000000
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLL3FRACN,PLLFRACN,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMC1CLockSelection,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLL3FRACN,PLLFRACN,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMC1CLockSelection,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.LPTIM1Freq_Value=120000000
RCC.LPTIM2Freq_Value=120000000
RCC.LPTIM345Freq_Value=120000000
RCC.LPUART1Freq_Value=120000000
RCC.LTDCFreq_Value=51600000
RCC.LTDCFreq_Value=51200000
RCC.MCO1PinFreq_Value=64000000
RCC.MCO2PinFreq_Value=480000000
RCC.PLL2FRACN=0
@ -475,7 +479,7 @@ RCC.USART234578Freq_Value=120000000
RCC.USBFreq_Value=160000000
RCC.VCO1OutputFreq_Value=960000000
RCC.VCO2OutputFreq_Value=400000000
RCC.VCO3OutputFreq_Value=258000000
RCC.VCO3OutputFreq_Value=256000000
RCC.VCOInput1Freq_Value=16000000
RCC.VCOInput2Freq_Value=2000000
RCC.VCOInput3Freq_Value=2000000

8
drivers/board.h

@ -125,12 +125,16 @@ extern "C"
*/
/*#define BSP_USING_I2C1*/
#define BSP_USING_I2C1
#ifdef BSP_USING_I2C1
#define BSP_I2C1_SCL_PIN GET_PIN(port, pin)
#define BSP_I2C1_SDA_PIN GET_PIN(port, pin)
#define BSP_I2C1_SCL_PIN GET_PIN(B, 12)
#define BSP_I2C1_SDA_PIN GET_PIN(B, 13)
#endif
/*#define BSP_USING_I2C2*/
//#define BSP_USING_I2C2
#ifdef BSP_USING_I2C2
#define BSP_I2C2_SCL_PIN GET_PIN(port, pin)
#define BSP_I2C2_SDA_PIN GET_PIN(port, pin)

15
drivers/ltdc.c

@ -456,9 +456,9 @@ int ltdc_init(void)
else if (lcdid == 0X7016)
{
lcdltdc.pwidth = 1024; lcdltdc.pheight = 600;
lcdltdc.hsw = 20; lcdltdc.hbp = 140; lcdltdc.hfp = 160;
lcdltdc.vsw = 3; lcdltdc.vbp = 20; lcdltdc.vfp = 12;
ltdc_clk_set(129, 32, 5);
lcdltdc.hsw = 70; lcdltdc.hbp = 160; lcdltdc.hfp = 160;
lcdltdc.vsw = 10; lcdltdc.vbp = 23; lcdltdc.vfp = 12;
ltdc_clk_set(128, 32, 5);
}
else if (lcdid == 0X7018)
{
@ -539,18 +539,27 @@ int ltdc_init(void)
g_ltdc_handle.Instance = LTDC;
if (lcdid == 0X8081)
{
g_ltdc_handle.Init.HSPolarity = LTDC_HSPOLARITY_AH;
}
else
{
g_ltdc_handle.Init.HSPolarity = LTDC_HSPOLARITY_AL;
}
g_ltdc_handle.Init.VSPolarity = LTDC_VSPOLARITY_AL;
g_ltdc_handle.Init.DEPolarity = LTDC_DEPOLARITY_AL;
g_ltdc_handle.State = HAL_LTDC_STATE_RESET;
if (lcdid == 0X1018 || lcdid == 0X8081)
{
g_ltdc_handle.Init.PCPolarity = LTDC_PCPOLARITY_IIPC;
}
else
{
g_ltdc_handle.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
}
g_ltdc_handle.Init.HorizontalSync = lcdltdc.hsw - 1;
g_ltdc_handle.Init.VerticalSync = lcdltdc.vsw - 1;

1
packages/LVGL-v8.3.11/demos/widgets/lv_demo_widgets.h

@ -22,7 +22,6 @@ extern "C" {
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/

8
packages/LVGL-v8.3.11/lv_conf.h

@ -749,10 +749,10 @@
====================*/
/*Show some widget. It might be required to increase `LV_MEM_SIZE` */
#define LV_USE_DEMO_WIDGETS 0
#if LV_USE_DEMO_WIDGETS
#define LV_DEMO_WIDGETS_SLIDESHOW 0
#endif
//#define LV_USE_DEMO_WIDGETS 1
//#if LV_USE_DEMO_WIDGETS
//#define LV_DEMO_WIDGETS_SLIDESHOW 0
//#endif
/*Demonstrate the usage of encoder and keyboard*/
#define LV_USE_DEMO_KEYPAD_AND_ENCODER 0

1
packages/LVGL-v8.3.11/lvgl.h

@ -18,6 +18,7 @@ extern "C" {
#define LVGL_VERSION_PATCH 11
#define LVGL_VERSION_INFO ""
#define LV_USE_DEMO_WIDGETS 1
/*********************
* INCLUDES
*********************/

5
packages/pkgs.json

@ -24,6 +24,11 @@
"ver": "v2.11.2",
"name": "LITTLEFS"
},
{
"path": "/packages/peripherals/touch/ft5426",
"ver": "latest",
"name": "FT5426"
},
{
"path": "/packages/peripherals/rs485",
"ver": "v1.06",

6
rtconfig.h

@ -127,6 +127,8 @@
#define RT_USING_SERIAL
#define RT_USING_SERIAL_V1
#define RT_SERIAL_RB_BUFSZ 512
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_MTD_NOR
#define RT_USING_RTC
#define RT_USING_SDIO
@ -145,6 +147,7 @@
#define RT_SFUD_SPI_MAX_HZ 50000000
#define RT_USING_WDT
#define RT_USING_TOUCH
#define RT_TOUCH_PIN_IRQ
#define RT_USING_LCD
#define RT_USING_DEV_BUS
#define RT_USING_PIN
@ -258,6 +261,7 @@
#define PKG_LVGL_THREAD_PRIO 20
#define PKG_LVGL_THREAD_STACK_SIZE 4096
#define PKG_LVGL_DISP_REFR_PERIOD 5
#define PKG_LVGL_USING_DEMOS
#define PKG_LVGL_USING_V080311
#define PKG_LVGL_VER_NUM 0x080311
/* end of LVGL: powerful and easy-to-use embedded GUI library */
@ -355,6 +359,8 @@
/* touch drivers */
#define PKG_USING_FT5426
#define PKG_USING_FT5426_LATEST_VERSION
/* end of touch drivers */
#define PKG_USING_RS485
#define RS485_USING_DEV

Loading…
Cancel
Save