首页/新闻资讯/正文详情

STM32F091RC-NUCLEO 开发板 RT-Thread BSP 使用指南:快速上手与外设驱动配置

发布时间:2026/9/26 8:15:53 来源:云帆数科 栏目:资讯中心
STM32F091RC-NUCLEO 开发板 RT-Thread 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点击查看免费下载NUCLEO-F091RC 是意法半导体推出的基于 ARM Cortex-M0 内核的 ST Nucleo-64 系列开发板本文以 RT-Thread 开源仓库中 bsp/stm32/stm32f091-st-nucleo 目录下的 BSP板级支持包为核心系统讲解该 BSP 的板载资源、外设驱动支持现状、MDK5 快速上手流程以及通过 ENV 工具开启 SPI、I2C、TIMER、PWM、ADC、RTC 等片上外设的进阶配置方法。读完本文你将能够把 RT-Thread 操作系统真正运行在这块开发板上并根据项目需要按需裁剪与扩展外设驱动。开发板介绍STM32F091RC-NUCLEO 开发板是 ST 官方推出的一款基于 ARM Cortex-M0 内核的开发板最高主频为 48MHz。该开发板具有丰富的扩展接口Arduino 兼容接口可以方便地验证 STM32F091 芯片性能同时板载 ST-LINK 调试器支持即插即用。该开发板常用板载资源如下MCUSTM32F091RC主频 48MHz256KB FLASH32KB RAM外部 RAM无外部 FLASH无常用外设按键1 个 user 按键兼具唤醒功能连接 PC13常用接口USB 转串口、Arduino 接口等调试接口标准 SWD从 BSP 源码 board/board.h 可以看到与资源定义对应的宏STM32_FLASH_SIZE定义为256 * 1024256KBSTM32_SRAM_SIZE定义为 3232KBHEAP_BEGIN由链接器符号MDK 的Image$$RW_IRAM1$$ZI$$Limit、IAR 的 CSTACK 段或 GCC 的__bss_end动态确定HEAP_END为 SRAM 末端地址0x20000000 32 * 1024即系统堆从 BSS 段末尾一直延伸到片内 SRAM 顶部。外设支持情况本 BSP 目前对外设的支持情况如下表所示板载外设支持情况备注ST-LINK 虚拟串口支持使用 USART2片上外设支持情况备注GPIO支持PA0, PA1... PC15 --- PIN: 0, 1...64UART支持USART1/2SPI支持SPI1I2C支持软件 I2CTIMER支持TIM14/TIM16/TIM17ADC支持ADC1RTC支持支持外部晶振 LSE 和内部低速时钟 LSIPWM支持TIM2 输出FLASH支持片上 FLASHFAL 抽象IWG支持独立看门狗外设支持对应的驱动配置上述外设支持能力均可在 board/Kconfig 中逐一找到对应开关默认开启的项目与当前仓库中 rtconfig.h 的实际配置一致BSP_USING_USB_TO_USART板载 USB 转串口对应 USART2默认开启并自动选中BSP_USING_UART与BSP_USING_UART2BSP_USING_GPIO默认开启自动选中RT_USING_PINBSP_USING_UART默认开启自动选中RT_USING_SERIAL其中BSP_STM32_UART_V1_TX_TIMEOUT默认 2000在 rtconfig.h 中可以看到 BSP 默认的片上外设组合为 GPIO UART2控制台设备为uart2RT_CONSOLE_DEVICE_NAME uart2并启用了RT_USING_SERIAL_V1与RT_SERIAL_USING_DMA这意味着串口驱动同时具备 DMA 通道扩展能力。使用说明使用说明分为快速上手与进阶使用两个章节快速上手面向刚接触 RT-Thread 的新手遵循简单步骤即可将 RT-Thread 操作系统运行在该开发板上并看到实验效果。进阶使用面向需要在 RT-Thread 上使用更多开发板资源的开发者通过 ENV 工具对 BSP 进行配置开启更多板载资源实现更多高级功能。快速上手本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程并且支持 GCC 开发环境。下面以 MDK5 开发环境为例介绍如何将系统运行起来。请注意在执行编译工作前请先打开 ENV 执行以下指令该指令用于拉取必要的 HAL 库及 CMSIS 库否则无法通过编译pkgs --update该命令会依据 BSP 内的 Kconfig 中rsource ../libraries/Kconfig引入的依赖关系以及 rtconfig.h 中声明的软件包选项PKG_USING_STM32F0_HAL_DRIVER、PKG_USING_STM32F0_CMSIS_DRIVER、PKG_USING_CMSIS_CORE自动拉取对应版本的 STM32F0 HAL 库与 CMSIS 库到本地packages目录。硬件连接使用数据线连接开发板到 PC打开电源开关。开发板板载 ST-LINK数据线同时承担供电、调试与虚拟串口功能。编译下载双击 project.uvprojx 文件打开 MDK5 工程编译并下载程序到开发板。工程默认配置使用板载 ST-LINK 仿真器下载程序在通过 ST-LINK 连接开发板的基础上点击下载按钮即可下载程序到开发板。MDK5 工程由 ENV 工具的scons --targetmdk5生成并保持与 rtconfig.py 中的工具链配置一致该文件同时定义了 GCCarm-none-eabi-、MDKarmcc、IARiccarm三种工具链的编译参数、链接脚本board/linker_scripts/link.lds/link.sct/link.icf与烧录后处理动作生成rtthread.bin。运行结果下载程序成功之后系统会自动运行。连接开发板对应串口到 PC在终端工具里打开相应的串口115200-8-1-N复位设备后可以看到 RT-Thread 的输出信息\ | / - RT - Thread Operating System / | \ 4.0.0 build Dec 21 2018 2006 - 2018 Copyright by rt-thread team msh 出现msh 提示符即代表 RT-Thread 内核与 FinSH 命令行组件已成功运行。与此同时程序入口 applications/main.c 会驱动板载 LED2PA5以 500ms 周期闪烁——该示例演示了 RT-Thread PIN 设备接口rt_pin_mode、rt_pin_write与线程延时rt_thread_mdelay的典型用法可以作为后续 GPIO 应用的模板。进阶使用此 BSP 默认只开启了 GPIO 和串口 2BSP_USING_USB_TO_USART的功能如果需使用 SPI、I2C 等更多高级功能需要利用 ENV 工具对 BSP 进行配置步骤如下在 BSP 目录bsp/stm32/stm32f091-st-nucleo下打开 ENV 工具。输入menuconfig命令配置工程配置好之后保存退出。输入pkgs --update命令更新软件包。输入scons --targetmdk4/mdk5/iar命令重新生成工程随后用对应 IDE 重新编译下载即可。更多详细的外设驱动使用介绍请参考 STM32 系列 BSP 外设驱动使用教程以及同目录下的 STM32 系列驱动介绍、STM32 系列外设驱动添加指南。各片上外设的 menuconfig 配置要点以下配置项均来自 board/Kconfig配置后建议对照重新生成的 rtconfig.h 确认宏是否生效。UART默认开启 USART2可选 USART1BSP_USING_UART1/BSP_USING_UART2使能对应串口每个串口可单独开启BSP_UARTn_RX_USING_DMA、BSP_UARTn_TX_USING_DMA需先开启RT_SERIAL_USING_DMA。BSP_UARTn_RX_BUFSIZE串口接收缓冲区大小范围 6465535默认 256V2 串口框架下生效。BSP_UARTn_TX_BUFSIZE串口发送缓冲区大小范围 065535默认 0V2 串口框架下生效。BSP_UARTn_DMA_PING_BUFSIZEDMA 乒乓接收缓冲区大小范围 3265535默认 64需同时开启 RX DMA。BSP_STM32_UART_V1_TX_TIMEOUT串口 V1 框架发送超时默认 2000。SPI默认关闭BSP_USING_SPI使能 SPI 总线框架选中RT_USING_SPI随后可开启BSP_USING_SPI1并可选开启BSP_SPI1_TX_USING_DMA与BSP_SPI1_RX_USING_DMA开启 RX DMA 会自动选中 TX DMA。I2C默认关闭软件 I2CBSP_USING_SOFT_I2C使能软件 I2C 总线框架BSP_USING_SOFT_I2C1使能 swi2c1 总线默认 SCL 引脚号为 34PA6 区域、SDA 引脚号为 35PA7 区域可通过RT_SOFT_I2C1_SCL_PIN/RT_SOFT_I2C1_SDA_PIN修改。BSP 同时定义了RT_SOFT_I2C1_SCL_PIN_DEFAULT/RT_SOFT_I2C1_SDA_PIN_DEFAULT作为引脚默认值兜底。TIMER默认关闭BSP_USING_TIM使能定时器设备选中RT_USING_CLOCK_TIME可选BSP_USING_TIM14、BSP_USING_TIM16、BSP_USING_TIM17。PWM默认关闭BSP_USING_PWM使能 PWM 设备选中RT_USING_PWMBSP_USING_PWM2使能 TIM2 输出 PWMBSP_USING_PWM2_CH4使能 TIM2 通道 4。ADC默认关闭BSP_USING_ADC使能 ADC 设备选中RT_USING_ADCBSP_USING_ADC1使能 ADC1。FLASH默认关闭FAL 抽象BSP_USING_ON_CHIP_FLASH使能片上 FLASH。BSP 预置了 FAL 分区表 board/ports/fal_cfg.happ分区从偏移 0 开始、大小 240KBparam分区从 240KB 开始、大小 16KB共同覆盖 256KB 片内 Flash。RTC默认关闭可选时钟源BSP_USING_ONCHIP_RTC使能 RTC选中RT_USING_RTC。通过BSP_RTC_USING_LSE/BSP_RTC_USING_LSI二选一选择时钟源默认使用 LSE 外部低速晶振。该配置与 board/board.c 中的SystemClock_Config相呼应——时钟初始化会打开 LSE、HSI、HSI14、LSI 多个振荡器并将RTCClockSelection设置为RCC_RTCCLKSOURCE_LSE。WDT默认关闭BSP_USING_WDT使能独立看门狗选中RT_USING_WDT对应文档中的 IWG 外设。系统时钟配置说明BSP 的系统时钟初始化位于 board/board.c 的SystemClock_Config()其要点如下使能备份域访问并配置 LSE 驱动能力为RCC_LSEDRIVE_HIGH打开 HSI8MHz 内部高速时钟、HSI14ADC 专用、LSI内部低速时钟与 LSE外部 32.768kHz 晶振系统时钟源选择 HSI经 PLL 6 倍频RCC_PLL_MUL6、RCC_PREDIV_DIV1得到 48MHz 主频AHB 与 APB1 均为 1 分频Flash 等待周期为 1外设时钟选择上USART1/USART2 均挂载 PCLK1RTC 选择 LSE 作为时钟源。该时钟树是理解串口波特率115200与各类外设分频配置的基础也决定了 PWM、TIMER 等外设的时基来源。注意事项初次编译前务必在 ENV 中执行pkgs --update拉取 HAL/CMSIS 依赖否则编译会因缺少 STM32F0 HAL 驱动而失败默认 BSP 仅开启 GPIO 与 UART2虚拟串口其余外设需通过menuconfig显式开启并重新生成工程串口参数为 115200-8-1-N控制台设备固定为uart2请勿随意修改RT_CONSOLE_DEVICE_NAME以免丢失日志输出本文所涉配置均以当前仓库 bsp/stm32/stm32f091-st-nucleo 目录内的实际文件为准若使用 RT-Studio 等其他工具链请参考 STM32 系列如何创建新项目。联系人信息维护人zylx赞分享操作系统嵌入式物联网嵌入式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 在 STM32F091RC-Nucleo 开发板上的 BSP 上手与进阶配置指南RT Thread 在 STM32F091RC Nucleo 开发板上的 BSP 上手与进阶配置指南 本文以 RT Thread 官方为 STM32F091RC操作系统嵌入式物联网嵌入式OSRTOSES32VF2264 开发板 RT-Thread BSP 快速上手与外设驱动配置指南ES32VF2264 开发板 RT Thread BSP 快速上手与外设驱动配置指南 ES PDS ES32VF2264 是上海东软载波微电子EastSoft操作系统嵌入式物联网嵌入式OSRTOSRT-Thread N32H760ZIL7-STB 开发板 BSP 使用指南快速上手与外设驱动配置RT Thread N32H760ZIL7 STB 开发板 BSP 使用指南快速上手与外设驱动配置 本指南以 RT Thread 仓库内 N32H760ZIL操作系统嵌入式物联网嵌入式OSRTOS上一篇Vanna 2.0企业级AI-SQL生成框架的架构演进与实战指南下一篇告别单调用250配色方案打造你的专属终端工作空间创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

ESPnet2 中文普通话 ASR 实战:基于 zh_openslr38 语料库的 Conformer 与 HuBERT SSLR 基线复现指南
ESPnet2 中文普通话 ASR 实战:基于 zh_openslr38 语料库的 Conformer 与 HuBERT SSLR 基线复现指南

人工智能语音音频深度学习NLP 【免费下载链接】espnet End-to-End Speech Processing Toolkit 项目地址: https://gitcode.com/gh_mirrors/es/espnet 点击查看 免费下载 本文以 ESPnet 仓库中的 zh_openslr38 配方 README 为核心,系统讲解如何基于开源的… · 2026/9/26 8:15:47

WorkBuddy十大核心技能实战:从项目初始化到MCP服务构建的效率提升指南
WorkBuddy十大核心技能实战:从项目初始化到MCP服务构建的效率提升指南

1. 为什么 WorkBuddy 的技能体系值得认真对待WorkBuddy 这类工具型产品,最怕的就是“装完就吃灰”。我见过太多人兴冲冲地装好,打开界面点两下,然后就没有然后了。问题不在于工具本身,而在于没有把它的技能模块和日常真实的工作流… · 2026/9/26 8:15:41

isomorphic-git abortMerge 全解析:在 Node 与浏览器中安全中断合并、回滚索引与工作树
isomorphic-git abortMerge 全解析:在 Node 与浏览器中安全中断合并、回滚索引与工作树

开发工具 【免费下载链接】isomorphic-git A pure JavaScript implementation of git for node and browsers! 项目地址: https://gitcode.com/gh_mirrors/is/isomorphic-git 点击查看 免费下载 导读 abortMerge 是 isomorphic-git 提供的用于"中断进行中的合… · 2026/9/26 8:15:41

哈尔滨实力强的奔驰专修专业店避坑挑选指南,勤功汽车服务正规知名
哈尔滨实力强的奔驰专修专业店避坑挑选指南,勤功汽车服务正规知名

在哈尔滨找靠谱的奔驰专修门店,是很多本地奔驰车主拿到车之后,就一直在操心的长期问题。毕竟奔驰作为豪华车型,保养维修都有专属的技术要求,随便找一家店很容易踩坑,找专业靠谱的不错的奔驰专修品牌企业,才… · 2026/9/26 8:44:54

jev-latest结构化决策模型国内直连使用第三方技术接入文档
jev-latest结构化决策模型国内直连使用第三方技术接入文档

一、模型概述Jev-1.13.0(别名 jev-latest)是 TypeSafe AI 推出的 System One 系统1决策模型,区别于传统生成式大模型,该模型不产出自由文本内容,仅输出标准化结构化判定数据,适配程序自动化解析与业务逻辑联… · 2026/9/26 8:44:48

若羌太禾金属制品有限公司靠谱吗,本地合作怎么样
若羌太禾金属制品有限公司靠谱吗,本地合作怎么样

若羌太禾金属制品有限公司是扎根若羌本土的全品类金属制品定制加工企业,主营锌钢护栏、彩钢围挡、彩板房钢结构制作安装、钢材销售、激光切割、钢板加工、预埋加工等全系金属加工服务,专注为若羌及周边区域的基建项目提供本地化靠谱金属配套供应方案。公… · 2026/9/26 8:44:48

Open-Code-Review:AI时代代码审查的自动化解决方案
Open-Code-Review:AI时代代码审查的自动化解决方案

写代码的速度被AI拉高了一倍之后,代码审查这件事就成了整个研发链路里最刺眼的瓶颈。我身边很多团队的状态是:daily commit量上去了,CI跑得飞快,但merge请求卡在review环节两三天挪不动。而Open-Code-Review这个开源项目&#xff… · 2026/9/26 8:44:48

开放代码评审实践:从流程设计到团队协作的完整指南
开放代码评审实践:从流程设计到团队协作的完整指南

作为开发者,代码评审这件事几乎没人陌生。你可能经历过那种人人自危的PR审查,也经历过敷衍了事的“LGTM”刷屏,或者因为评审意见争得面红耳赤。所谓 open code review,不只是把评审过程开放出来,更是一种从制度到心态的… · 2026/9/26 8:44:48

Atlas 300V 24G部署YOLO全流程:从版本匹配到性能调优
Atlas 300V 24G部署YOLO全流程:从版本匹配到性能调优

Atlas 300V 24G 是运算加速卡吗?这是我接手“在Atlas上部署YOLO”这个任务之前,自己先搜过的问题。当时项目服务器上插着这块卡,我习惯性地敲nvidia-smi去查状态,命令根本不认,心态一度是崩的。后来把驱动、固件、CANN… · 2026/9/26 8:44:48

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码