C
STM32H750B 开发套件
本主题提供了有关 STM STM32H750B 开发套件所需信息的说明。
板级功能
- ARM® Cortex®-M7
- 4.3” RGB 触摸显示屏
- 128-Mbit SDRAM
- 1-Mbit NOR Flash
- 板载 eMMC 存储 4-Gbyte
支持的颜色深度
此板卡的参考端口支持 16bpp 和 32bpp(默认)颜色深度。板卡还支持 24bpp,但在参考端口中未实现。有关更多信息,请参阅QUL_COLOR_DEPTH 和 颜色深度。
注意:提供的预构建平台库仅适用于默认 32bpp。对于 16bpp 颜色深度,平台库需要将 QUL_COLOR_DEPTH 设置为 16 重新构建。有关从源代码构建平台的信息,请参阅从源代码构建 Qt Quick Ultralite 平台库针对评估包。
预构建演示和示例
针对 STM32H750B
板卡的包包含一个预构建的 thermo 演示二进制文件。您可以在 demos_images
目录中找到它。
有关如何刷写引导加载程序(STM32H750B 所需)的说明,请参阅ST 板卡的引导加载程序刷写说明,以及有关将应用程序二进制文件刷写到设备的ST 板卡刷写说明。
读取调试信息
默认情况下,printf
调用的输出被重定向到虚拟串行端口,该端口通过 USB 暴露在主机机器上。
硬件加速
参考端口利用 STMicroelectronics Chrom-Art Accelerator™(DMA2D)来实现图形的硬件加速。
DMA2D 是一个针对图像处理的专业直接内存访问(DMA)加速器。它可以执行以下操作
- 用特定颜色填充图像。
- 将源图像复制到目标图像。
- 将源图像复制到目标图像,并进行像素格式转换。
- 将两种不同像素格式的完整源图像混合,并将结果转换为像素格式后拷贝到目标图像中。
上述所有操作都可以应用于图像的部分或全部。
更多信息,请参阅意法半导体文档
- STM32H7 - Chrom-ART™
- RM0433 参考手册中的Chrom-Art Accelerator™ 控制器(DMA2D)部分。
硬件配置
有关以下提到的STM32H750XB MCU专用外围设备的更多信息,请参阅意法半导体文档
注意:以下章节中提到的底层(LL)和硬件抽象层(HAL)均指STM32Cube抽象层。
STM32CubeMX
STM32H750B-DK板的硬件配置由STM32CubeMX生成的代码以及来自STM32Cube MCU Package for STM32H7 series
仓库的BSP驱动程序组成。
所有由STM32CubeMX生成的代码(除了系统时钟配置)都位于stm32h750b-discovery-baremetal/3rdparty/Core
文件夹中。
该文件夹包括以下配置
- 引导加载程序、MPU、QSPI和SDRAM -
main.c
- GPIO和时钟 -
stm32h7xx_hal_msp.c
- 中断例程 -
stm32h7xx_it.c
- USART -
usart.c
系统时钟配置
系统时钟配置位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/platform_clock.cpp
中。函数SystemClock_Config()
被声明为弱引用,以便可以通过自定义时钟配置覆盖它。
系统滴答定时器
在STM32Cube MCU包仓库文件Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c
中使用函数HAL_InitTick()
将ARM Cortex-M SysTick定时器配置为时间基源。
底层(LL)函数SysTick_Handler()
位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_it.c
中。
中断处理程序
底层(LL)处理器异常和外围中断处理程序位于stm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_it.c
中。
用于LCD-TFT显示控制器(LTDC)中断回调和触摸中断引脚回调的硬件抽象层(HAL)中断处理程序位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/platform_irq.cpp
中。
Chrom-ART 加速器(DMA2D)
DMA2D配置位于Qt Quick Ultralite平台源文件platform/boards/st/common/platform_drawing.cpp
中。
NVIC和DMA2D的时钟配置位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_hal_msp.c
中。
显示
您可以在Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/platform_display.cpp
中找到LCD-TFT显示控制器(LTDC)的配置设置。
您可以使用setLcdClockConfiguration()
函数为LTDC提供时钟设置。
LTDC时钟使能和GPIO配置设置位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_hal_msp.c
中。
四串行外围设备接口(QSPI)
对于QSPI配置,请检查BSP_QSPI_Init()
的设备设置以及从Drivers/BSP/STM32H750B-DK/stm32h750b_discovery_qspi.c
文件中进行引脚定义/时钟配置的QSPI_MspInit()
。
Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/main.c
中配置了QSPI内存映射模式。
随机数生成器(RNG)
您可以在Qt Quick Ultralite平台源文件platform/boards/st/common/platform_rng.cpp
中找到随机数生成器(RNG)的初始化。
RNG硬件实例的时钟配置位于3rdparty/Core/Src/stm32h7xx_hal_msp.c
。
SDRAM
SDRAM BSP配置位于STM32Cube MCU软件包仓库文件Drivers/BSP/STM32H750B-DK/stm32h750b_discovery_sdram.c
。
SDRAM MPU配置位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/main.c
。
触摸面板
触摸面板配置位于STM32Cube MCU软件包仓库文件Drivers/BSP/STM32H750B-DK/stm32h750b_discovery_ts.c
。
触摸面板驱动IC连接到I2C4硬件实例,触摸中断信号连接到GPIOG引脚2。
I2C4配置在名为MX_I2C4_Init()
的函数中,它位于STM32Cube MCU软件包仓库文件Drivers/BSP/STM32H750B-DK/stm32h750b_discovery_bus.c
。
USART
USART3硬件实例用于虚拟COM端口上的日志记录。USART3配置位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/usart.c
。
USART3的GPIO和时钟配置位于Qt Quick Ultralite平台源文件stm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_hal_msp.c
。
已知问题或限制
- 由于SDRAM带宽有限,CPU访问SDRAM可能会导致显示控制器扫描帧缓冲区时出现视觉伪影,这是由于LTDC FIFO下溢错误。在具有许多UI元素和复杂动画的应用程序中可能会出现
LTDC FIFO Underrun
错误,导致视觉干扰。除了简化UI外,考虑到使用不同类型的Qt Quick Ultralite核心库,例如使用Debug
或Release
而不是MinSizeRel
。为了防止出现视觉伪影,尽量减少使用需要CPU混合的旋转或透视变换的图像。 - 仅支持SDK版本1.11.1。
RLE解压缩
该板上的CPU无法直接将压缩图像混合到SDRAM的帧缓冲区中。此类图像首先解压缩到有限大小的中间缓冲区,然后在SDRAM的帧缓冲区中使用DMA2D进行混合。与未压缩图像相比,这种方法在混合RLE压缩图像时具有明显的工作量。
通过增加platform_stm32.cpp中qul_scratch_buffer的大小,可以在一定程度上提高性能,但会以更多的RAM使用为代价。
在特定Qt许可证下提供。
了解更多信息。