C

STM32F469I 开发套件

板级特性

  1. STM32F469NIH6 微控制器,采用 ARM® Cortex®-M4 内核和 324 Kbytes 的 RAM
  2. 4 英寸 TFT 彩色液晶触摸显示屏
  3. 128-Mbit SDRAM
  4. 128-Mbit QSPI NOR Flash

支持的颜色深度

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

注意:仅提供预构建平台库的默认 24bpp。对于 16bpp 颜色深度,请使用值设置为 16 的 QUL_COLOR_DEPTH 重新构建平台库。有关从源代码构建平台的详细信息,请参阅 从源代码构建 Qt Quick Ultralite 平台库针对评估包

部分帧缓冲支持

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

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

注意:Qt Quick Ultralite 对于 16bpp 颜色深度使用双部分帧缓冲,对于 24bpp 颜色深度使用单个部分帧缓冲。

预构建演示和示例

包含以下预构建演示的 STM32F469I-DISCO 板的包

您可以使用 demos_images 文件夹中的映像将其闪存到设备上。遵循 ST 板的闪烁说明,并以 STM32469I-DISCO 作为板名,N25Q128A_STM32469I-DISCO 作为外部加载脚本。

读取调试消息

默认情况下,《printf>`函数调用的输出会被重定向到虚拟串口,这个串口通过USB在主机上暴露。

硬件加速

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

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

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

所有这些操作都可以应用于图像的部分或全部。

更多信息请参考意法半导体的文档。

硬件配置

有关以下所述的STM32F469NIH6微控制器专用外设的更多信息,请参阅意法半导体的文档。

注意: 在下文中,低层(LL)和硬件抽象层(HAL)均指STM32Cube抽象层。

STM32CubeMX

STM32F469I-DISCO电路板的硬件配置由STM32CubeMX生成的代码组成,以及来自STM32Cube MCU Package for STM32F4 series存储库的外设BSP驱动程序。

所有STM32CubeMX生成的代码(除系统时钟配置位于stm32f469i-discovery-baremetal/3rdparty/Core文件夹外)。

系统时钟配置

系统时钟配置位于Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/platform_clock.cpp。函数SystemClock_Config()被声明为非严格的,因此可以被自定义时钟配置覆盖。

系统定时器配置

在Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/3rdparty/Core/Src/stm32f4xx_hal_timebase_tim.c中,使用函数HAL_InitTick()将TIM6定时器实例配置为时间基源。

在Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/3rdparty/Core/Src/stm32f4xx_it.c中定义了低层(LL)的()函数。

中断处理程序

stm32f469i-discovery-baremetal/3rdparty/Core/Src/stm32f4xx_it.c中定义了低层(LL)处理器异常和外设中断处理程序。

在Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/platform_irq.cpp中定义了显示串行接口主机(DSI)中断回调和触摸中断引脚回调的硬件抽象层(HAL)中断处理程序。

Chrom-ART加速器(DMA2D)

DMA2D的配置在Qt Quick Ultralite平台源文件platform/boards/st/common/platform_drawing.cpp中定义。

Nested Vectored Interrupt Controller (NVIC)和DMA2D的时钟配置在STM32Cube MCU包存储库文件Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c中定义。

显示

您可以在Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/platform_display.cpp中找到LCD-TFT显示控制器(LTDC)和显示串行接口主机配置设置。

您可以使用setLcdClockConfiguration()函数为LTDC提供时钟设置。

LTDC时钟启用和GPIO配置设置在STM32Cube MCU包库文件Drivers/BSP/STM32469I-Discovery/stm32469i_discovery_lcd.c中定义。

四线串行外围设备接口(QSPI)

对于QSPI配置,请在STM32Cube MCU包库文件Drivers/BSP/STM32469I-Discovery/stm32469i_discovery_qspi.c中查看BSP_QSPI_Init()进行外设设置,以及查看QSPI_MspInit()进行引脚/时钟配置。

在Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/platform_init.cpp中,QSPI被配置为内存映射模式。

随机数发生器(RNG)

您可以在Qt Quick Ultralite平台源文件platform/boards/st/common/platform_rng.cpp中找到随机数发生器(RNG)的初始化。

RNG硬件实例的时钟配置位于3rdparty/Core/Src/stm32f4xx_hal_msp.c

SDRAM

SDRAM BSP配置位于STM32Cube MCU包库文件Drivers/BSP/STM32469I-Discovery/stm32469i_discovery_sdram.c

触摸屏

触摸屏配置位于STM32Cube MCU包库文件Drivers/BSP/STM32469I-Discovery/stm32469i_discovery_ts.c

触摸屏驱动芯片连接到I2C1硬件实例,且触摸中断信号连接到GPIOJ引脚5。

I2C1配置在名为I2C1_Init()的函数中,此函数位于STM32Cube MCU包库文件Drivers/BSP/STM32469I-Discovery/stm32469i_discovery.c中。

串行外设通信接口(USART)

USART3硬件实例用于虚拟串行端口上的日志记录。USART3配置(包括GPIO和时钟设置)位于Qt Quick Ultralite平台源文件stm32f469i-discovery-baremetal/3rdparty/Core/Src/usart.c

已知问题或限制

  • 由于SDRAM带宽有限,使用CPU访问SDRAM可能会导致显示控制器在扫描帧缓存时出现视觉伪影,因为LTDC FIFO欠载。LTDC FIFO Underrun错误可能会在拥有大量UI元素和大量动画的应用程序中发生,导致视觉闪烁。除了简化UI外,还可以考虑为Qt Quick Ultralite核心库使用不同的构建类型。例如,使用DebugRelease而不是MinSizeRel
  • STM32F469NI不支持双精度浮点运算。

RLE解压缩

该板上的CPU无法直接在SDRAM的帧缓存上混合压缩图像。这些图像首先被解压缩到有限大小的中间缓冲区,然后使用DMA2D将它们混合到SDRAM的帧缓存中。与未压缩图像相比,这种方法在混合RLE压缩图像时会有显著的性能开销。

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

在特定的Qt许可下可用。
了解更多。