尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

RT-Thread STM32F469-ST-DISCO BSP 开发指南:从资源解析到快速上手与进阶外设配置

发布时间:2026/9/28 21:23:46

资讯中心
01
ARTICLE

RT-Thread STM32F469-ST-DISCO BSP 开发指南:从资源解析到快速上手与进阶外设配置

RT-Thread STM32F469-ST-DISCO BSP 开发指南:从资源解析到快速上手与进阶外设配置
操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载RT-Thread 官方为 ST 的 STM32F469 Discovery 套件提供了完整的板级支持包BSP本文以 bsp/stm32/stm32f469-st-disco/README.md 及对应的 中文说明 为骨架结合仓库内 BSP 的源码、Kconfig 配置与工程文件系统讲解该 BSP 的板载资源、外设支持矩阵、MDK5/GCC 快速上手的完整流程以及通过 ENV 工具menuconfig开启 SD 卡、QSPI Flash、LCD/触摸、SDRAM、Arduino 兼容等高级功能的实操方法并给出 384KB RAM 分区含 64KB CCM等关键注意事项帮助开发者把 RT-Thread 真正跑起来并驱动更多板载资源。一、开发板与 BSP 概览STM32F469-ST-DISCO 是 ST 推出的 Discovery 系列评估套件基于 ARM Cortex-M4 内核的 STM32F469 高性能 MCU并集成 Chrom-ART Accelerator™ 图形加速器在高端图形显示、音频、多传感器接入、WVGA 彩色显示、安全与存储扩展等场景中具备很强的代表性。RT-Thread 开发团队为该板卡维护的 BSP 位于 bsp/stm32/stm32f469-st-disco提供 MDK4、MDK5、IAR 与 GCC 四类构建工程project.uvprojx、project.ewp、project.uvproj及SConstruct/SConscript源码工程结构如下applications/用户应用入口main.c以及arduino_main.cpp、lvgl/等扩展应用示例board/板级初始化board.c、内存/时钟配置board.h外设端口适配ports/LCD OTM8009A、QSPI Flash、SD 卡、FAL 分区表以及linker_scripts/下的 MDK/IAR/GCC 链接脚本figures/开发板外观图rtconfig.h/rtconfig.py/Kconfig默认配置、构建脚本与菜单配置源。板载资源一览资源项规格MCUSTM32F469NIH6U主频 180MHz2048KB FLASH384KB RAM其中 64KB 为 CCM RAM外部 RAMN25Q128A16MB实际为 QSPI 接口的外部 Flash/存储Kconfig 中标注为N25Q128A qspi1外部 FLASH7LL12D9NOR16MBLED4 个LD1绿PG6、LD2橙PD4、LD3红PD5、LD4蓝PK3按键1 个 USERPA0兼具唤醒功能LCD4 英寸 800×480 TFTMIPI 接口驱动 IC 为 OTM8009A音频SAI 音频 DAC接口Arduino UNO V3、MicroSD、音频、LCD、I2C 等调试板载 ST-LINK/V2-1 SWD该板更多官方信息可参考 ST 官网的 32F469IDISCOVERY 产品页见原文档引用链接本文不再重复外链。二、外设支持矩阵BSP 当前对外设的支持情况按“板载外设 / 片上外设 / 扩展模块”三类整理如下与 BSP README 中的表格一致板载外设支持备注SDRAM√16MBLCD√MIPI LCDOTM8009ASDCARD√支持热插拔插拔检测间隔 200msTOUCH√FT6206片上外设支持备注GPIO√—USART√USART3板载 ST-LINK 虚拟串口SPI√SPI3另有 SPI2 可配置QSPI√用于外部 FlashI2C√软件 I2Cswi2c1FLASH√已适配 FAL 分区管理SDIO√驱动 SD 卡USB Device√OTGFS 作为 USB 设备扩展模块支持备注N/AN/AN/A需要说明的是从当前仓库 board/Kconfig 的实际配置项看SDRAM、QSPI Flash、SD 卡、LCD、触摸、USB 设备等驱动的“支持”均以菜单选项形式存在默认关闭默认开启的只有 GPIO 与 UART3。这正好对应原文档进阶使用章节“默认只开启 GPIO 和串口 3”的说明。例如BSP_USING_SDRAM默认n开启后select BSP_USING_FMCBSP_USING_QSPI_FLASH默认n开启后联动使能 SFUD、FAL 等组件BSP_USING_SDCARD默认n开启后联动使能 DFS 与 elmfat 文件系统BSP_USING_LCD_OTM8009A默认n开启后联动BSP_USING_SDRAM、BSP_USING_LTDC与BSP_USING_LCD_MIPIBSP_USING_TOUCH默认由选择项决定触摸 IC 可在 FT6206 与 FT6x36 之间选择BSP_USING_USBD默认n开启 OTGFS 为 USB 设备。三、快速上手将 RT-Thread 跑起来3.1 编译前准备务必执行在执行任何编译工作之前必须先在 BSP 目录下打开 RT-Thread ENV 工具执行以下命令拉取必要的 HAL 库与 CMSIS 库否则工程无法通过编译pkgs --update该命令会依据rtconfig.h中PKG_USING_STM32F4_HAL_DRIVER、PKG_USING_STM32F4_CMSIS_DRIVER、PKG_USING_CMSIS_CORE等配置从软件包索引中拉取 STM32F4 HAL 驱动与 CMSIS 依赖这正是 rtconfig.h 中“RT-Thread online packages”段落所列出的内容。3.2 硬件连接使用 USB 数据线连接开发板与 PC并打开开发板电源开关。板载 ST-LINK/V2-1 同时承担程序下载与虚拟串口USART3的功能因此只需一根线即可完成下载与串口调试。3.3 编译与下载以 MDK5 为例双击工程根目录下的project.uvprojx文件打开 MDK5 工程编译并点击 Download 按钮下载程序。工程默认配置使用 ST-Link 仿真器下载程序通过 ST-Link 连接开发板后直接点击下载按钮即可将程序写入开发板。3.4 运行结果验证程序下载成功后系统自动运行板载 LED LD1绿色PG6开始闪烁。应用层的闪烁逻辑位于 applications/main.c#define LED1_PIN GET_PIN(G, 6) int main(void) { /* set LED1 pin mode to output */ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LED1_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED1_PIN, PIN_LOW); rt_thread_mdelay(500); } }即通过rt_pin_mode/rt_pin_write控制 PG6 以 500ms 周期交替输出高低电平实现 1Hz 闪烁。随后将开发板串口连接 PC在终端工具中以115200-8-1-N参数打开对应串口复位设备后可看到 RT-Thread 启动输出\ | / - RT - Thread Operating System / | \ 4.0.1 build Apr 9 2019 2006 - 2019 Copyright by rt-thread team msh 出现msh 提示符即表示系统启动成功可以在 FinSH 控制台输入命令如list_device、list_thread查看系统状态。默认控制台设备在 rtconfig.h 中定义为uart3RT_CONSOLE_DEVICE_NAME与板载 ST-LINK 虚拟串口一一对应。四、进阶使用用 ENV 开启更多外设如果默认的 GPIO UART3 无法满足需求例如需要 SD 卡、外部 Flash、LCD、触摸屏等可以通过 ENV 工具对 BSP 进行菜单化配置完整流程如下在 BSP 目录bsp/stm32/stm32f469-st-disco下打开 ENV 工具执行menuconfig打开配置菜单按需勾选外设驱动后保存退出执行pkgs --update更新软件包使依赖的驱动包如 FAL、SFUD、FT6206、LVGL 等生效执行scons --targetmdk4/mdk5/iar重新生成对应 IDE 工程再打开工程编译下载。menuconfig的配置入口由 Kconfig 定义其中Hardware Drivers Config菜单项由 board/Kconfig 提供分为“Onboard Peripheral Drivers板载外设”“On-chip Peripheral Drivers片上外设”“Board extended module Drivers扩展模块”三个子菜单。详细的菜单操作步骤可参考 RT-Thread 官方《STM32 系列 BSP 外设驱动使用教程》。4.1 关键可配置项速查表结合 board/Kconfig 源码将常用配置项整理如下配置项默认值联动效果适用场景BSP_USING_GPIOy使能RT_USING_PIN通用 IO 控制BSP_USING_STLINK_TO_USARTy使能 UART3ST-LINK 虚拟串口BSP_USING_UART3n串口 3可开 RX/TX DMA、配置缓冲区大小用户串口通信BSP_USING_SDRAMn使能 FMC外部 SDRAMBSP_USING_QSPI_FLASHn使能 QSPI、SFUD、FAL外部 Flash 读写BSP_USING_SDCARDn使能 SDIO、DFS、elmfat、PIN文件系统挂载 SD 卡BSP_USING_LCD_OTM8009An使能 SDRAM、LTDC、MIPI LCD驱动 800×480 LCDBSP_USING_LVGLn使能 LCD TOUCH LVGL 软件包GUI 图形界面BSP_USING_TOUCHFT6206/FT6x36 二选一FT6x36使能软件 I2C1 触摸软件包触摸输入BSP_USING_USBDn使能RT_USING_USB_DEVICEUSB 从机BSP_USING_ARDUINOn使能 RTduino 及 ADC/PWM/TIM/SPI/软 I2C 等Arduino 生态兼容几个值得注意的联动细节LCD 依赖 SDRAMBSP_USING_LCD_OTM8009A会select BSP_USING_SDRAM因为 800×480 的帧缓冲需要外部 SDRAM 承载触摸依赖软件 I2CBSP_USING_TOUCH会select BSP_USING_SOFT_I2C与BSP_USING_SOFT_I2C1软件 I2C1 的 SCL/SDA 引脚默认分别配置为 Pin 24 / Pin 25RT_SOFT_I2C1_SCL_PIN_DEFAULT/RT_SOFT_I2C1_SDA_PIN_DEFAULTSD 卡频率可调SDIO_MAX_FREQ取值范围 024000000默认 24000000QSPI Flash 可挂载文件系统开启BSP_USING_QSPI_FLASH后BSP_MOUNT_QSPI_WITH_LFS默认 y会进一步使能 littlefs 并将 QSPI Flash 挂载为根文件系统UART3 支持 DMABSP_UART3_RX_USING_DMA/BSP_UART3_TX_USING_DMA可分别开启收发 DMA前提是RT_SERIAL_USING_DMA已使能默认开启。4.2 验证方式完成配置并重新编译下载后可在 FinSH 控制台执行list_device查看新使能的外设是否出现在设备列表中文件系统挂载成功后可用ls、mkdir等 DFS 命令进行读写验证。更完整的外设使用示例参见《STM32 系列 BSP 外设驱动使用教程》。五、源码级佐证默认配置与驱动端口5.1 默认配置从何而来menuconfig保存后生成的默认配置固化在 rtconfig.h 中可以清晰看到内核配置RT_THREAD_PRIORITY_3232 级线程优先级、RT_TICK_PER_SECOND 100100Hz 时钟节拍、IDLE_THREAD_STACK_SIZE 256、RT_TIMER_THREAD_STACK_SIZE 512组件配置RT_USING_MSHmsh 命令行、FINSH_THREAD_STACK_SIZE 4096、FINSH_HISTORY_LINES 5、FINSH_CMD_SIZE 80驱动配置BSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART3、BSP_USING_STLINK_TO_USART软件包配置PKG_USING_CMSIS_CORE、PKG_USING_STM32F4_HAL_DRIVER、PKG_USING_STM32F4_CMSIS_DRIVER。这些宏正是pkgs --update与scons构建时决定编译哪些源码、拉取哪些软件包的依据。注意到rtconfig.h中RT_VER_NUM 0x50300对应 RT-Thread 5.0.3 版本而 README 中的启动打印显示的是 4.0.1 构建产物说明该 BSP 随仓库演进已同步更新到较新的内核版本。5.2 内存布局为什么 RAM 是 320KBSTM32F469NIH6U 的 RAM 为 384KB但其中 64KB 是CCMCore Coupled Memory数据 RAM只能被内核直接访问无法被 DMA 等外设访问。因此在修改 board/board.h 与链接脚本时不能按 384KB 配置而应以 (384 − 64)KB 320KB 配置#define STM32_SRAM_SIZE (384 - 64) #define STM32_SRAM_END (0x20000000 STM32_SRAM_SIZE * 1024)堆区HEAP从 BSS 段末尾__bss_end或 MDK 的Image$$RW_IRAM1$$ZI$$Limit、IAR 的 CSTACK 段末尾一直延伸到STM32_SRAM_END即堆空间覆盖 0x20000000 起的 320KB 区域。对应地链接脚本位于 board/linker_scriptslink.sct、link.icf、link.lds分别服务于 MDK、IAR 与 GCC。同时片上 Flash 的起始地址为0x08000000总大小 2048KBSTM32_FLASH_SIZE (2048 * 1024)。若开启片上 Flash 的 FAL 分区见下文地址空间还会按 16KB/64KB/128KB 三种扇区粒度切分。5.3 Flash 分区FAL 适配BSP 已将 Flash 适配到 FALFlash Abstraction Layer分区表定义在 board/ports/fal_cfg.h片上 Flash 按扇区粒度划分为三段onchip_flash_16k4×16KB、onchip_flash_64k1×64KB、onchip_flash_128k15×128KB分区规划bootloader16KB 区、param64KB 区、app128KB 区另有 QSPI 外部 Flash 分区qspiflash16MB设备表FAL_FLASH_DEV_TABLE根据BSP_USING_QSPI_FLASH与BSP_USING_ON_CHIP_FLASH的组合自动裁剪两种 Flash 均开启时设备表包含 4 个设备。开发者开启BSP_USING_ON_CHIP_FLASH与/或BSP_USING_QSPI_FLASH后即可通过 FAL API 或fal命令读写分区为 OTA 升级、参数存储、文件系统等上层应用提供统一接口。5.4 其它端口驱动LCDMIPI 屏 OTM8009A 的驱动端口位于 board/ports/drv_otm8009a.c配合lcd_port.h实现 LTDC 初始化与显示缓冲对接QSPI FlashN25Q128A 的 SFUD 对接位于 board/ports/drv_qspi_flash.c 与qspi_mnt.cSD 卡SDIO 驱动位于 board/ports/drv_sdcard.c支持 200ms 间隔的插拔检测GUIapplications/lvgl/下提供了 LVGL 的显示与输入设备移植lv_port_disp.c、lv_port_indev.c、lv_conf.h并附带 demo 示例配合BSP_USING_LVGL配置即可获得开箱即用的图形界面Arduino 兼容applications/arduino_main.cpp与arduino_pinout/目录为 RTduinoArduino 生态兼容层提供支持开启BSP_USING_ARDUINO后可使用 Arduino 风格的 API 开发。六、注意事项与维护信息6.1 关键注意事项RAM 容量陷阱如上文所述配置board.h与链接脚本时必须以 320KB384KB − 64KB CCM为准否则会导致堆越界或链接失败USART3 引脚映射若使用 STM32CubeMX 重新生成工程配置 USART3 时必须将引脚映射为PB10TX与 PB11RX以保证与 BSP 现有引脚分配一致编译顺序修改 Kconfig 后务必依次执行menuconfig→pkgs --update→scons --targetxxx缺一不可先更新软件包再生成工程才能保证驱动代码与依赖库齐全串口参数控制台串口固定为 115200-8-1-N115200 波特率、8 数据位、1 停止位、无校验。6.2 维护与文档该 BSP 由 RT-Thread 开发团队维护原文档说明该 BSP 早期由社区开发者贡献。更多 STM32 系列 BSP 的通用外设使用方法可参考 bsp/stm32/docs/STM32系列BSP外设驱动使用教程.mdBSP 制作流程可参考 bsp/stm32/docs/STM32系列BSP制作教程.md。七、总结本文围绕 bsp/stm32/stm32f469-st-disco 的 BSP 说明文档展开梳理了 STM32F469-ST-DISCO 的资源全貌与默认/可扩展的外设支持情况给出了从pkgs --update到编译下载、串口观察启动日志的完整上手路径并深入讲解了 ENV 工具menuconfig开启 SDRAM、QSPI Flash、SD 卡、LCD/触摸、LVGL、RTduino 等高级功能的具体配置项与联动关系最后结合 board/board.h、board/ports/fal_cfg.h 等源码确认了内存布局与 Flash 分区等底层细节。开发者只需按照快速上手章节即可在几分钟内点亮 LED 并进入 msh 控制台再借助进阶配置章节逐步解锁这块开发板的全部潜力。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐RT-Thread STM32F469-ST-DISCO 开发板 BSP 使用指南从快速上手到外设进阶RT Thread STM32F469 ST DISCO 开发板 BSP 使用指南从快速上手到外设进阶 本指南围绕 RT Thread 仓库中 bsp/stm操作系统嵌入式物联网嵌入式OSRTOSRT-Thread NUCLEO-F072RB BSP 开发指南STM32F072RBT6 快速上手与进阶外设配置RT Thread NUCLEO F072RB BSP 开发指南STM32F072RBT6 快速上手与进阶外设配置 导读 本文是基于 RT Thread 开源操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 在 ST NUCLEO-WB55STM32WB55开发板上的 BSP 应用指南快速上手与进阶外设配置RT Thread 在 ST NUCLEO WB55STM32WB55开发板上的 BSP 应用指南快速上手与进阶外设配置 本篇指南以 RT Thread操作系统嵌入式物联网嵌入式OSRTOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。