资讯动态

RT-Thread NUCLEO-F413ZH BSP 板级支持包使用指南:从快速上手到外设驱动配置

发布时间:2026/9/27 21:16:20 来源:尧图企业网站定制
操作系统嵌入式物联网嵌入式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 仓库中 NUCLEO-F413ZH BSP 说明文档 为主线完整介绍 ST NUCLEO-F413ZH 开发板的资源概况、BSP 外设支持情况以及从零开始将 RT-Thread 跑起来编译、下载、验证与使用 ENV 工具开启更多外设驱动的完整流程。读完本文你将掌握该 BSP 的默认工程结构、关键配置项含义、快速上手步骤并能独立通过 menuconfig 配置 UART、SPI、I2C、TIMER、PWM、ADC、RTC、WDT、USB 等板载与片上外设。开发板资源介绍探索者 NUCLEO-F413ZH 是意法半导体推出的一款基于 ARM Cortex-M4 内核的 NUCLEO-144 系列开发板板载 ST-LINK/V2-1 调试器可直接通过 Micro-USB 线供电与调试。该 BSP 面向STM32F413ZH芯片主要硬件资源如下MCUSTM32F413ZH主频最高 100MHz本 BSP 默认配置为 96MHz1536KB FLASH、320KB RAMLED共 8 个。其中 user LED 需连接 JP5 跳帽包括黄色 LD1PB0、蓝色 LD2PB7、红色 LD3PB14其余为 USB communicationLD4、over currentLD5、power LED黄色 LD6、USB FAULTLD7、VBUSLD8按键2 个B1USERPC13、B2RESETUSB支持 3 种不同接口虚拟 COM 端口、大容量存储和调试端口调试接口板载 ST-LINK/V2-1 调试器BSP 外设支持情况本 BSP 的板载与片上外设支持情况如下表所示对应工程默认配置见 rtconfig.h 与 board/Kconfig板载外设支持情况备注STLINK TO USART支持UART3片上外设支持情况备注GPIO支持UART支持UART2/3SPI支持SPI2I2C支持I2C1软件模拟TIMER支持TIM11/13/14PWM支持PWM2_CH4ADC支持ADC1_IN5RTC支持支持外部晶振LSE和内部低速时钟LSIWDT支持独立看门狗Onchip Flash支持片上 FlashUSB OTG_FS支持OTGFS 作为 USB deviceUSB Device支持OTGFS 作为 USB deviceRNG支持Random Number GeneratorUDID支持Unique Device Identifier从 board/Kconfig 的默认值可以看出BSP 默认仅开启STLINK TO USARTUART3、GPIO、UART含 UART2/UART3三组驱动其余片上外设均默认关闭需要开发者通过 ENV 工具的 menuconfig 按需开启。这一点与 rtconfig.h 中硬件驱动段实际生效的宏BSP_USING_STLINK_TO_USART、BSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART3完全一致控制台设备为uart3。快速上手让 RT-Thread 跑起来本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程并支持 GCC 开发环境。下面以 MDK5 为例介绍运行步骤。第 0 步拉取必要的 HAL 库与 CMSIS 库请注意在执行编译工作前请先打开 ENV 工具并执行以下指令该指令用于拉取必要的 HAL 库及 CMSIS 库否则无法通过编译pkgs --update这一步会依据工程中的软件包配置rtconfig.h 中已定义PKG_USING_STM32F4_HAL_DRIVER、PKG_USING_STM32F4_CMSIS_DRIVER、PKG_USING_CMSIS_CORE从软件包仓库下载 STM32F4 系列 HAL 驱动与 CMSIS 库是后续 MDK/IAR/GCC 编译成功的前提。硬件连接使用 Type-A to Micro-B 线连接开发板和 PC 供电黄色 LED LD6PWR和 LD4COM会点亮表示供电与 ST-LINK 通信正常。编译下载双击 project.uvprojx 文件打开 MDK5 工程编译并下载程序到开发板。工程默认配置使用板载 ST-LINK 仿真器下载程序在通过 Micro-USB 线连接开发板的基础上点击下载按钮即可将程序下载到开发板。运行结果下载程序成功之后系统会自动运行。在JP5 跳帽连接时观察开发板上 LD1 的运行效果黄色 LED 会周期性闪烁周期为 1 秒每 500ms 翻转一次见下文源码解析。连接开发板对应串口到 PC在终端工具里打开相应的串口参数115200-8-1-N复位设备后可以看到 RT-Thread 的输出信息\ | / - RT - Thread Operating System / | \ 4.0.3 build Apr 28 2020 2006 - 2020 Copyright by rt-thread team msh 说明上述启动 Banner 为原 BSP 文档示例内核版本 4.0.3。当前仓库 rtconfig.h 中RT_VER_NUM为0x50300实际编译输出的版本信息以你构建时使用的内核配置为准。看到msh 提示符即表示 RT-Thread 已成功运行在开发板上可以在命令行交互。进阶使用用 ENV 配置更多外设此 BSP 默认只开启了 GPIO 和 UART3 的功能更多高级功能需要利用 ENV 工具对 BSP 进行配置步骤如下在bsp/stm32/stm32f413-st-nucleo目录下打开 ENV 工具输入menuconfig命令配置工程配置好之后保存退出输入pkgs --update命令更新软件包输入scons --targetmdk4/mdk5/iar命令重新生成工程按需选择目标 IDE。更多详细的外设驱动使用介绍请参考 STM32 系列 BSP 外设驱动使用教程。硬件驱动配置项详解对应 board/Kconfigboard/Kconfig 是这一 BSP 的硬件驱动配置入口核心配置项如下板载外设配置项默认说明BSP_USING_STLINK_TO_USART开启default y使能 ST-LINK 虚拟串口自动选择BSP_USING_UART与BSP_USING_UART3片上外设配置项默认说明BSP_USING_GPIO开启使能 GPIO自动选择RT_USING_PINBSP_USING_UART开启使能串口驱动自动选择RT_USING_SERIALserial v1 下可配置BSP_STM32_UART_V1_TX_TIMEOUT默认 2000BSP_USING_UART2/BSP_USING_UART3开启单独使能对应串口。serial v2 下可配置 RX buffer 大小默认 256范围 64~65535、TX buffer 大小默认 0范围 0~65535依赖RT_SERIAL_USING_DMA时可开启 RX/TX DMA并可配置 DMA ping-pong buffer 大小默认 64范围 32~65535BSP_USING_SPI/BSP_USING_SPI2关闭使能 SPI 总线自动选择RT_USING_SPI与 SPI2可分别开启 SPI2 的 TX/RX DMABSP_USING_SOFT_I2C/BSP_USING_SOFT_I2C1关闭软件模拟 I2C 总线自动选择RT_USING_I2C、RT_USING_SOFT_I2C默认 SCL 引脚编号 136、SDA 引脚编号 140RT_SOFT_I2C1_SCL_PIN/RT_SOFT_I2C1_SDA_PIN可按实际接线修改BSP_USING_TIM关闭使能定时器驱动自动选择RT_USING_CLOCK_TIME可分别开启 TIM11、TIM13、TIM14BSP_USING_PWM/BSP_USING_PWM2_CH4关闭使能 PWM自动选择RT_USING_PWM与 TIM2 的通道 4 输出BSP_USING_ADC/BSP_USING_ADC1关闭使能 ADC自动选择RT_USING_ADC与 ADC1BSP_USING_ONCHIP_RTC关闭使能 RTC自动选择RT_USING_RTC并提供时钟源选择BSP_RTC_USING_LSE外部低速晶振默认或BSP_RTC_USING_LSI内部低速时钟BSP_USING_WDT关闭使能独立看门狗自动选择RT_USING_WDTBSP_USING_ON_CHIP_FLASH关闭使能片上 FlashBSP_USING_USBD关闭使能 OTGFS 作为 USB device自动选择RT_USING_USB_DEVICE与BSP_USBD_TYPE_FS此外RNG随机数发生器、UDID唯一设备标识等外设通过bsp/stm32/libraries/HAL_Drivers/drivers/Kconfig统一提供同样可在 menuconfig 中开启。从源码结构看menuconfig生成的配置会直接写入工程根目录的 rtconfig.hscons --targetmdk4/mdk5/iar则根据这些宏重新生成对应的 IDE 工程文件使能的外设会自动加入编译与工程开发者即可基于 RT-Thread 设备驱动框架如rt_device_find、rt_pin_*、rt_serial_*等 API开发应用。源码级解析默认工程是如何工作的应用入口LED 闪烁applications/main.capplications/main.c 是默认的应用主程序通过GET_PIN(B, 0)将LED1 映射到 PB0并循环翻转电平#define LED1_PIN GET_PIN(B, 0) #define LED2_PIN GET_PIN(B, 7) #define LED3_PIN GET_PIN(B, 14) #define KEY_PIN GET_PIN(C, 13) /* USER 按键 B1 */ 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); } }这正是快速上手章节中LD1 黄色 LED 每 500ms 周期性闪烁现象的代码来源。开发者可参照其中的GET_PIN宏与rt_pin_*接口继续驱动 LED2PB7、LED3PB14与按键PC13。系统时钟96MHz 与 48MHz USB 时钟board/board.cboard/board.c 中的SystemClock_Config()完成系统时钟初始化使用 HSE旁路模式作为 PLL 输入PLLM8、PLLN384、PLLPDIV4得到96MHz 系统时钟芯片最高支持 100MHzPLLQ8得到48MHz 的 CLK48 时钟供 USB OTG 外设使用RTC 时钟源选择内部低速时钟 LSI。同时 APB1 二分频、APB2 一分频Flash 等待周期配置为 3。内存与堆区布局board/board.hboard/board.h 定义了 BSP 的存储资源边界Flash起始地址0x08000000大小1536 * 10241536KBSRAM大小 320KB结束地址0x20000000 320 * 1024堆区HEAP_BEGIN依据编译器不同而取链接脚本符号MDK 的Image$$RW_IRAM1$$ZI$$Limit、IAR 的CSTACK段尾、GCC 的__bss_endHEAP_END为 SRAM 末尾工具链与工程生成rtconfig.py / SConscriptrtconfig.py 支持GCC、MDKarmcc/armclang、IAR三种工具链可通过环境变量RTT_CC、RTT_EXEC_PATH覆盖默认路径链接脚本统一引用 board/linker_scripts 下的link.ldsGCC/link.sctMDK/link.icfIARSConscript 为整个 BSP 追加STM32F413xx预处理宏保证 HAL 库按 F413 系列裁剪。这也解释了为什么必须先用pkgs --update拉取 HAL/CMSIS 软件包后各工具链才能编译通过。注意事项执行menuconfig、pkgs --update、scons --target...等操作均需在 ENV 工具环境中进行并确保网络可访问软件包服务器若需要使用 GPIO 之外的外设如 SPI2、软 I2C1、TIM、PWM、ADC、RTC、WDT、片上 Flash、USB Device 等务必先在menuconfig中使能对应配置项再重新生成工程否则相应驱动不会参与编译软件 I2C1 的默认引脚编号SCL136、SDA140需结合实际电路确认后使用必要时在 menuconfig 中调整本 BSP 由 RT-Thread 开发团队维护BSP 相关问题可通过仓库中 README 的联系人信息反馈。延伸阅读STM32 系列 BSP 外设驱动使用教程ENV 配置外设驱动的完整图文流程STM32 系列 BSP 制作教程了解此类 BSP 的构建方式STM32 系列驱动介绍驱动框架与实现概览赞分享操作系统嵌入式物联网嵌入式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点击查看免费下载相关推荐STM32F091RC-NUCLEO 开发板 RT-Thread BSP 使用指南快速上手与外设驱动配置STM32F091RC NUCLEO 开发板 RT Thread BSP 使用指南快速上手与外设驱动配置 NUCLEO F091RC 是意法半导体推出的基于操作系统嵌入式物联网嵌入式OSRTOSWasp 页面与路由Pages Routes入门用 route 与 page 声明构建 React 应用导航Wasp 页面与路由Pages Routes入门用 route 与 page 声明构建 React 应用导航 在 Wasp 中页面与路由的声明式配置操作系统嵌入式物联网嵌入式OSRTOSRT-Thread STM32F401 Nucleo-64 开发板 BSP 使用指南从快速上手到外设配置实战RT Thread STM32F401 Nucleo 64 开发板 BSP 使用指南从快速上手到外设配置实战 导读 本文围绕 RT Thread 开源仓库中操作系统嵌入式物联网嵌入式OSRTOS上一篇告别性能瓶颈TiKV参数调优实战指南下一篇如何快速掌握Overleaf实时协作LaTeX编辑系统的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑