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) 加速器。它可以执行以下操作
- 用特定颜色填充图像。
- 将源图像复制到目标图像。
- 将源图像以像素格式转换复制到目标图像。
- 将两种具有不同像素格式的完整源图像混合,并将结果以像素格式转换复制到目标图像。
上述所有操作都可以针对图像的部分或全部进行。
有关更多信息,请参阅意法半导体文档。
- STM32F7 - Chrom-ART™
- RM0410 参考手册部分Chrom-Art Accelerator™ 控制器(DMA2D)。
硬件配置
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.cpp
的SystemClock_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许可证下可用。
了解更多信息。