C

STM32F769I Discovery Kit

本主题向您提供了关于意法半导体 STM32F769I 开发板必要的信息。

板级特性

  • STM32F769NIH6 微控制器 (ARM® Cortex®-M7)
  • 4 英寸电容式触摸 LCD 显示屏 (800x480)
  • 512+16+4 Kbytes 的 RAM
  • 128-Mbit SDRAM
  • 2 MB 闪存
  • 512-Mbit Quad-SPI NOR 闪存

更多相关信息可以从STM32F769I 开发板网站 获取

支持的颜色深度

该板的参考端口支持 32bpp 颜色深度。板还支持 16bpp 和 24bpp,但在参考端口中没有实现。有关更多信息,请参阅 QUL_COLOR_DEPTH颜色深度

部分帧缓冲支持

该板支持部分帧缓冲策略。要启用它,请设置 QUL_PLATFORM_PARTIAL_FRAMEBUFFER重新构建平台库

使用部分帧缓冲可以显着降低应用程序的内存要求,但可能导致复杂应用程序的性能降低和潜在的视觉效果撕裂。

预构建演示和示例

STM32f769I-DISCOVERY 板提供的软件包包含一个预构建的 thermo 演示二进制文档。由于 Qt Quick Ultralite 支持该板上的裸机界面和 FreeRTOS,因此在 demos_images 目录中有两个不同的二进制文档。此外,Thermo 演示有两种版本,一种使用公制单位,另一种使用英制单位。

有关更详细的信息,请参阅ST 板的烧录说明部分。对于该板,请选择 MX25L512G_STM32F769I-DISCO 作为外部加载器。

读取调试消息

默认情况下,printf 调用的输出将重定向到 STLink 虚拟串行端口,该串行端口通过 USB 在主机机器上提供。串行配置如下

   Baud rate: 115200
   Data bits: 8
   Stop bits: 1
      Parity: None
Flow control: None

硬件加速

参考端口利用意法半导体的 Chrom-Art Accelerator™ (DMA2D) 进行硬件加速图形。

DMA2D 是一个专门用于图像处理的直接内存访问 (DMA) 加速器。它可以执行以下操作

  • 用特定颜色填充图像。
  • 将源图像复制到目标图像。
  • 将源图像以像素格式转换复制到目标图像。
  • 将两种具有不同像素格式的完整源图像混合,并将结果以像素格式转换复制到目标图像。

上述所有操作都可以针对图像的部分或全部进行。

有关更多信息,请参阅意法半导体文档。

硬件配置

STM32CubeMX

STM32f769I-DISCOVERY开发板的硬件配置包括由STM32CubeMX生成的代码和来自STM32Cube MCU Package for STM32F7系列仓库的外设 BSP 驱动程序。

所有由 STM32CubeMX 生成的代码(除系统时钟配置外)都位于 stm32f769i-discovery-common/3rdparty/Core文件夹中。该文件夹包括以下配置:

  • GPIO - gpio.c
  • UART - uart.c
  • 系统定时器 - stm32f7xx_hal_timebase_tim.c
  • 中断例程 - stm32f7xx_it.c

系统时钟配置

系统时钟配置位于 Qt Quick Ultralite 平台源文件 stm32f769i-discovery-common/platform_clock.cpp中。函数 SystemClock_Config() 是声明的弱引用,因此可以被自定义时钟配置覆盖。

系统滴答定时器

(TIM6) 定时器实例用作系统滴答定时器。初始化函数可在 STM32CubeMX 生成的源文件 stm32f769i-discovery-common/3rdparty/Core/Src/stm32f7xx_hal_timebase_tim.c 中找到。

中断处理程序

中断处理程序位于 Qt Quick Ultralite 平台源文件 stm32f769i-discovery-common/3rdparty/Core/Src/stm32f7xx_it.c中。此外,与显示相关的 DSI 中断回调和触摸中断引脚回调也存在于 Qt Quick Ultralite 平台源文件 stm32f769i-discovery-common/platform_irq.cpp中。

四线串行外设接口(QSPI)

对于 QSPI 配置,请检查来自 STM32Cube MCU 包仓库的文件Drivers/BSP/STM32F769I-Discovery/stm32f769i_discovery_qspi.c中的 BSP_QSPI_Init()外围设置和 BSP_QSPI_MspInit()引脚/时钟配置。

SDRAM

SDRAM配置位于 STM32Cube MCU 包仓库文件 Drivers/BSP/STM32F769I-Discovery/stm32f769i_discovery_sdram.c中。

触摸屏

I2C1 硬件实例用作触摸控制器 IC 的通信接口。触摸屏 IC 的 I2C 配置位于 STM32Cube MCU 包仓库路径中(Drivers/BSP/STM32F769I-Discovery/stm32f769i_discovery.c)。函数 I2Cx_Init() 包含 I2C所需的配置。

显示屏

您可以在 Qt Quick Ultralite 平台源文件 stm32f769i-discovery-common/platform_display.cpp中找到显示配置(LTDC 和 DSI 接口配置)。有关显示配置的更多信息,请参阅函数 initializeLcdPeripherals()

LTDC的时钟设置由setLcdClockConfiguration()函数提供,而DSI时钟配置由setDsiPllConfiguration()函数提供。BSP_LCD_MspInit()函数位于STM32Cube MCU包仓库文件Drivers/BSP/STM32F769I-Discovery/stm32f769i_discovery_lcd.c中,其中包含LTDC、DMA2D和DSI接口的一般用途输入/输出(GPIO)以及中断和异常(NVIC)设置。

随机数生成器(RNG)

您可以在Qt Quick Ultralite平台源文件platform/boards/st/common/platform_rng.cpp中找到RNG外设初始化。

USART

USART1硬件实例用于虚拟串口中的日志。您可以在Qt Quick Ultralite平台源文件stm32f769i-discovery-common/3rdparty/Core/Src/uart.c中找到外设配置。时钟设置定义在Qt Quick Ultralite平台源文件stm32f769i-discovery-common/platform_clock.cppSystemClock_Config()函数中。

已知问题或限制

由于SDRAM带宽有限,当显示控制器正在扫描帧缓冲区时,使用CPU访问SDRAM可能会导致视觉效果受损,因为LTDC FIFO下溢。在具有许多UI元素和大量动画的应用程序中,可能会发生LTDC FIFO下溢错误,导致视觉缺陷。除了简化UI外,考虑使用Qt Quick Ultralite核心库的不同构建类型。例如,使用调试发布而不是最小尺寸发布

RLE解压缩

此板上的CPU无法直接将压缩图像混合到SDRAM中的帧缓冲区。此类图像首先解压缩到具有一定大小的中间缓冲区,然后再使用DMA2D将其与SDRAM中的帧缓冲区混合。与未压缩图像相比,此方法在混合RLE压缩图像时具有显著的性能开销。

通过在platform_stm32.cpp中增加qul_scratch_buffer的大小,可以在一定程度上提高性能,但这会使RAM使用量增加。

在特定Qt许可证下可用。
了解更多信息。