ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RT-Thread STM32L496-Nucleo BSP 实战指南:开发板资源、快速上手与 ENV 外设配置

RT-Thread STM32L496-Nucleo BSP 实战指南:开发板资源、快速上手与 ENV 外设配置 操作系统嵌入式物联网嵌入式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 仓库中 bsp/stm32/stm32l496-st-nucleo 的 BSP板级支持包说明文档为核心系统讲解 NUCLEO-L496ZG 开发板的 MCU 资源、关键特性、编译下载流程、串口输出验证方法以及通过 ENV 工具开启 SPI、I2C、PWM 等高级外设的完整配置路径。读完本文你将能够独立完成该 BSP 的烧录运行、日志观察与进阶外设配置并理解 BSP 在时钟配置、控制台串口与驱动框架层面的底层实现。开发板与 MCU 资源概览NUCLEO-L496ZG 是 ST 官方推出的 Nucleo-144 系列开发板其板载 MCU 为STM32L496ZG主频 80 MHz集成1024 KB FLASH 与 320 KB SRAM属于 STM32L4 超低功耗系列。STM32L496xx 基于高性能 Arm® Cortex®-M4 32 位 RISC 内核配备单精度浮点单元FPU、完整的 DSP 指令集与内存保护单元MPU并带有 ART Accelerator™ 自适应实时加速器可实现在 Flash 中零等待周期执行详见 board.h 中STM32_FLASH_START_ADRESS、STM32_SRAM1_SIZE等内存布局宏定义。在仓库的 Kconfig 中可以看到该 BSP 的 SoC 与板级标识SOC_STM32L496ZG选择SOC_SERIES_STM32L4BOARD_STM32L496_NUCLEO选择BOARD_SERIES_STM32_NUCLEO_144对应 rtconfig.h 中的宏定义。板载资源MCUSTM32L496ZG主频 80 MHz1 MB FLASH320 KB RAMLED3 个LED1 绿色 PB0、LED2 蓝色 PB7、LED3 红色 PB14按键1 个K1PC13常用接口USB OTG 等调试接口标准 ST-LINK/SWD板载其中 LED2PB7是 BSP 默认演示程序使用的引脚见下文运行结果章节。KEY FEATURESSTM32L496 核心特性详解BSP 文档对 STM32L496xx 的关键特性做了完整列举这些特性决定了该平台适合低功耗 IoT、电机控制、人机交互等应用方向超低功耗与 FlexPowerControl1.71 V 至 3.6 V 供电-40 °C 至 85/125 °C 工作温度VBAT 模式仅 320 nA为 RTC 与 32×32 位备份寄存器供电、Shutdown 模式 25 nA5 个唤醒引脚、Standby 模式 108 nA5 个唤醒引脚、Standby RTC 426 nA、Stop 2 模式 2.57 µA带 RTC 为 2.86 µARun 模式LDO91 µA/MHzSMPS 模式下 3.3 V 仅 37 µA/MHz支持批采集模式BAM、Stop 模式 5 µs 唤醒除 Shutdown 外所有模式均支持掉电复位BOR。内核与性能Cortex-M4 FPU80 MHz 主频100 DMIPS1.25 DMIPS/MHzDrystone 2.1273.55 Coremark80 MHz 即 3.42 Coremark/MHz能效基准 279 ULPMark™ CP、80.2 ULPMark™ PP。定时器16 个定时器——2 个 16 位高级电机控制定时器、2 个 32 位与 5 个 16 位通用定时器、2 个 16 位基本定时器、2 个可在 Stop 模式下工作的 16 位低功耗定时器、2 个看门狗与 SysTick。存储最高 1 MB Flash双 Bank 读-写同时进行支持专有代码读出保护、320 KB SRAM其中 64 KB 带硬件奇偶校验、外部静态存储器接口SRAM/PSRAM/NOR/NAND、双 Quad SPI 存储器接口。时钟源4~48 MHz 晶振、RTC 用 32 kHz 晶振LSE、16 MHz 出厂校准内部 RC±1%、32 kHz 低功耗内部 RC±5%、100 kHz~48 MHz 多速内部振荡器由 LSE 自动校准精度优于 ±0.25%、带时钟恢复的 48 MHz 内部时钟、3 个 PLL系统时钟 / USB / 音频 / ADC。模拟外设3 个 12 位 ADC5 Msps硬件过采样最高 16 位200 µA/Msps、2 个 12 位 DAC 通道低功耗采样保持、2 个内置 PGA 的运放、2 个超低功耗比较器、内部电压基准缓冲。人机交互LCD 驱动 8×40 或 4×44带升压转换器、最多 24 个电容感应通道支持触摸按键、线性与旋转触摸传感器、Chrom-ART Accelerator™DMA2D图形加速、8~14 位摄像头接口黑白最高 32 MHz彩色 10 MHz。通信接口USB OTG 2.0 全速LPM、BCD、2 个 SAI 串行音频接口、4 个 I2C FM1 Mbit/s支持 SMBus/PMBus、5 个 U(S)ARTISO 7816、LIN、IrDA、调制解调、1 个 LPUART、3 个 SPI加 Quad SPI 共 4 个、2 个 CAN 2.0B、SDMMC、SWPMI 单线协议主接口、IRTIM 红外接口。其他14 通道 DMA 控制器、真随机数发生器、CRC 计算单元、96 位唯一 ID、SWD/JTAG/ETM 调试支持、最多 136 个快速 I/O大部分 5 V 容忍最多 14 个 I/O 可独立供电至 1.08 V。BSP 仓库结构一览该 BSP 目录的核心文件组织如下均位于 bsp/stm32/stm32l496-st-nucleoapplications/main.c应用入口默认演示程序LED2 闪烁board/board.c、board/board.h板级初始化与系统时钟配置、内存堆定义board/Kconfig片上/板载外设配置菜单board/CubeMX_Config/STM32CubeMX 工程STM32L496ZG.ioc与 HAL 配置头文件board/linker_scripts/IARlink.icf、GCClink.lds、Keillink.sct三种链接脚本board/fal_cfg.h、board/mnt.cFAL 分区配置与文件系统挂载逻辑rtconfig.h编译期配置宏内核、组件、驱动开关project.uvprojx/project.ewp/project.eww/template.*MDK5、IAR 工程与模板Kconfig、SConscript、SConstruct、rtconfig.py构建系统入口快速上手编译、下载与运行验证本 BSP 提供 MDK4、MDK5 与 IAR 工程并支持 GCC 开发环境。下面以 MDK5 为例介绍完整流程。硬件连接使用 USB 数据线连接开发板到 PC打开电源开关。板载 ST-LINK 提供调试、虚拟串口Virtual COM port与 USB 大容量存储三种功能无需额外调试器。ST-LINK 与目标板之间的连接默认由板载自动切换电路管理。编译与下载MDK5双击打开 project.uvprojx注意是project.uvprojx不是template.uvprojx模板文件点击 Options for Target 按钮进入 Debug 选项卡选择 ST-Link Debugger点击 SettingsPort 选择 SWSerial WireFlash Download 中勾选 Reset and Run编译并下载程序到开发板程序下载成功后系统自动运行。工程默认配置即使用 ST-LINK 仿真器下载连接好 ST-LINK 后直接点击下载按钮即可烧录。运行结果程序运行后板载 LED1 与电源 LED 常亮蓝色 LED2 以 500 ms 周期闪烁。这一行为由 applications/main.c 实现程序将 LED2GET_PIN(B, 7)对应的 PB7配置为输出模式然后循环调用rt_pin_write以rt_thread_mdelay(500)间隔翻转电平#define LED2_PIN GET_PIN(B, 7) int main(void) { /* set LED2 pin mode to output */ rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LED2_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED2_PIN, PIN_LOW); rt_thread_mdelay(500); } }在 PC 端打开 ST-LINK 虚拟串口115200-8-1-N复位设备后可以看到 RT-Thread 控制台输出\ | / - RT - Thread Operating System / | \ 4.0.2 build Oct 2 2019 2006 - 2019 Copyright by rt-thread team msh 出现msh 提示符即表示 RT-Thread 已正常启动可输入help查看内置命令MSH 与 FinSH 在 rtconfig.h 中默认开启RT_USING_MSH、RT_USING_FINSH、FINSH_USING_MSH等。控制台串口的实际实现说明需要特别说明的是英文版 README 中记载的虚拟串口默认连接 USART3为历史描述。从当前仓库实际配置看板载 ST-LINK 虚拟串口对应的控制台设备为LPUART1——rtconfig.h 中RT_CONSOLE_DEVICE_NAME定义为lpuart1board/Kconfig 中的BSP_USING_STLINK_TO_USART选项select BSP_USING_LPUART1默认开启负责使能该串口同时BSP_LPUART1_RX_USING_DMA开启了 LPUART1 的 RX DMA 接收。实际使用请以 LPUART1 为准板载外设支持情况参见下表板载外设支持情况备注USB 转串口支持LPUART1ST-LINK 虚拟串口片上外设支持情况备注GPIO支持BSP_USING_GPIOUART支持LPUART1、UART1默认使能系统时钟配置源码解析BSP 的时钟初始化位于 board/board.c 的SystemClock_Config()函数其关键路径如下使能备份域访问并配置 LSE 驱动能力为低功耗模式时钟源选择LSE MSIMSI 工作于 RANGE6约 4 MHz作为 PLL 输入PLLM1、PLLN40、PLLPDIV2得到 4 MHz × 40 ÷ 2 80 MHz 系统主频AHB 分频 1HCLK80 MHzAPB1 分频 240 MHzAPB2 分频 180 MHzFlash 等待周期配置为 4LPUART1 时钟取自 PCLK1USB 时钟由 PLLSAI1 输出 48 MHzRCC_PLLSAI1_48M2CLK电压缩放至 SCALE1并启用 MSI PLL 模式自动校准。此外 board.h 声明了SystemClock_MSI_ON/OFF、SystemClock_80M/24M/2M等时钟切换接口供低功耗场景下动态调整系统时钟使用。堆区边界则按编译器区分ARMCC 取Image$$RW_IRAM1$$ZI$$Limit、IAR 取CSTACK段尾、GCC 取__bss_end堆顶固定为 SRAM1 末尾0x20000000 256 KB。进阶使用ENV 工具配置高级外设该 BSP 默认只开启了 GPIO、UART1 与 LPUART1ST-LINK 虚拟串口功能。如需使用 SPI、I2C、PWM、ADC、RTC、USB 等更多外设需要使用 RT-Thread ENV 工具进行配置操作步骤如下在 BSP 目录bsp/stm32/stm32l496-st-nucleo下打开 Env 工具输入menuconfig命令配置工程配置完成后保存并退出输入pkgs --update命令更新软件包输入scons --targetmdk4/mdk5/iar重新生成对应 IDE 工程GCC 环境则直接使用scons构建。配置菜单由 board/Kconfig 定义主要外设选项如下配置项功能默认值BSP_USING_STLINK_TO_USARTST-LINK 虚拟串口LPUART1自动选择BSP_USING_LPUART1开BSP_USING_GPIOGPIO 驱动自动选择RT_USING_PIN开BSP_USING_UARTUART 驱动框架含BSP_STM32_UART_V1_TX_TIMEOUT超时参数默认 2000 ms开BSP_USING_UART1/UART2具体串口含 RX/TX DMA 开关、V2 版 RX/TX 缓冲区大小64~65535与 DMA ping-pong 缓冲区32~65535关BSP_USING_SPISPI1/2/3SPI 总线可选 TX/RX DMA关BSP_USING_QSPIQuad SPI 总线可选 DMA 支持关BSP_USING_TIMTIM7/15/16/17定时器自动选择RT_USING_CLOCK_TIME关BSP_USING_PWMPWM2/PWM4定时器输出 PWM可逐通道使能如 PWM2_CH3/CH4、PWM4_CH1~CH4关BSP_USING_ADCADC1模数转换关BSP_USING_DACDAC1数模转换关BSP_USING_WDT看门狗关BSP_USING_USBDOTGFS 作为 USB 设备CDC 等关BSP_USING_ONCHIP_RTCRTC时钟源可选 LSE 或 LSI关BSP_USING_ON_CHIP_FLASH片上 FlashFAL 抽象可选BSP_USING_ON_CHIP_FLASH_FATFS挂载 FatFS 文件系统关其中片上 Flash 与文件系统相关逻辑位于 board/mnt.c当使能BSP_USING_ON_CHIP_FLASH时通过fal_init()初始化 FAL 分区并以fal_blk_device_create创建块设备若同时使能BSP_USING_ON_CHIP_FLASH_FATFS启动阶段INIT_ENV_EXPORT自动初始化会尝试挂载名为flash的分区到/失败时自动执行dfs_mkfs格式化后再次挂载。USB CDC 等更细化的使用方式可参考该目录的README_zh.md中指向的 RT-Thread 社区实践文章。注意事项开机时若无法打印 RT-Thread 版本信息请重新选择 PC 端串口调试软件的串口号或将 BSP 中串口的 GPIO 速率调低尤其是使用杜邦线外接串口转接器时调试下载请使用 ST-LINK 的 SWD 模式切勿误选 JTAG 接口导致连接失败template.uvprojx/template.ewp为工程模板直接烧录请使用project.*工程文件。延伸阅读STM32 Nucleo-144 BSP 通用说明Nucleo-144 系列开发板资源介绍、快速上手与高级特性Must-Read中文版说明README_zh.md外设驱动参考RT-Thread STM32 系列 BSP 外设驱动使用教程位于bsp/stm32/docs/目录该 BSP 由 super_mcusuper_mcuqq.com维护中文翻译由 Meco ManRT-Thread 社区完成赞分享操作系统嵌入式物联网嵌入式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 STM32 Nucleo-144 BSP 开发指南板卡资源、MDK5 快速上手与 ENV 高级外设配置RT Thread STM32 Nucleo 144 BSP 开发指南板卡资源、MDK5 快速上手与 ENV 高级外设配置 本文是 RT Thread 开源仓操作系统嵌入式物联网嵌入式OSRTOSRT-Thread STM32 Nucleo-64 BSP 开发指南板卡资源、快速上手与高级外设配置RT Thread STM32 Nucleo 64 BSP 开发指南板卡资源、快速上手与高级外设配置 本文围绕 RT Thread 官方为 STM32 Nuc操作系统嵌入式物联网嵌入式OSRTOSSTM32F091RC-NUCLEO 开发板 RT-Thread BSP 使用指南快速上手与外设驱动配置STM32F091RC NUCLEO 开发板 RT Thread BSP 使用指南快速上手与外设驱动配置 NUCLEO F091RC 是意法半导体推出的基于操作系统嵌入式物联网嵌入式OSRTOS上一篇VideoCaptioner视频字幕制作终极指南从零基础到专业级的完整教程下一篇ModernWMS终极指南如何构建现代化的开源仓库管理系统创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表