STM32-MBD(1)Matlab2022/2023 安装 STM32 硬件支持包
STM32-MBD(1b)Matlab2025b 安装 STM32 硬件支持包
STM32-MBD(2)Simulink 模型部署入门:点灯
STM32-MBD(3)Simulink 模型部署之状态机
STM32-MBD(4)Simulink 模型部署之状态机实现按键输入
STM32-MBD(5)Simulink 模型开发之GPIO
STM32-MBD(6)Simulink 模型开发之外部中断实现按键输入
STM32-MBD(7)Simulink 模型开发之多路 PWM 输出
STM32-MBD(8)Simulink 模型开发之 ADC 转换
STM32-MBD(9)Simulink 模型开发之串口通信
STM32-MBD(10)基于 STM32 的处理器在环仿真(PIL)
【STM32-MBD】(10)基于 STM32 的处理器在环仿真(PIL)
-
- [1. MBD 与 RCP](#1. MBD 与 RCP)
-
- [1.1 基于模型的开发(Model-Based Design,MBD)](#1.1 基于模型的开发(Model-Based Design,MBD))
- [1.2 快速控制原型(Rapid Control Prototyping,RCP)](#1.2 快速控制原型(Rapid Control Prototyping,RCP))
- [2. 实验的软硬件条件](#2. 实验的软硬件条件)
- [3. Simulink + STM32 基于模型的嵌入式开发](#3. Simulink + STM32 基于模型的嵌入式开发)
-
- [3.1 用 STM32CubeMX 创建工程](#3.1 用 STM32CubeMX 创建工程)
- [3.2 创建 Simulink 仿真模型](#3.2 创建 Simulink 仿真模型)
- [3.3 模型配置与代码自动生成](#3.3 模型配置与代码自动生成)
-
- [3.3.1 Simulink 模型配置](#3.3.1 Simulink 模型配置)
- [3.3.2 STM32 代码生成与部署](#3.3.2 STM32 代码生成与部署)
- [4. Simulink 在线监控与调节](#4. Simulink 在线监控与调节)
-
- [4.1 外部模式的运行机制](#4.1 外部模式的运行机制)
- [4.2 STM32CubeMX 配置 LPUART1 虚拟串口](#4.2 STM32CubeMX 配置 LPUART1 虚拟串口)
- [4.3 Simulink 外部模式配置](#4.3 Simulink 外部模式配置)
- [4.4 基于 SDI 在线监控](#4.4 基于 SDI 在线监控)
- [4.5 用户按键在线调节](#4.5 用户按键在线调节)
- [5. 小结](#5. 小结)
通过安装MATLAB 硬件支持包,可以将 STM32 微处理器与 MATLAB/Simulink 结合使用,让开发者可以直接在MATLAB环境中进行嵌入式系统的设计和调试。
本文介绍 基于目标硬件的 MBD 快速原型实验,通过处理器在环仿真(PIL)以及监控和调参功能来进行代码验证。本例将配置Simulink 模型以运行处理器在环(PIL)仿真,使模型在目标硬件上运行时,能够运行过程进行数据监控和参数调节。
使用 Simulink + STM32CubeMX 将模型自动生成的代码部署到 STM32G431 控制板上,并通过 External Mode(Monitor & Tune) 进行在线监控与调节。
1. MBD 与 RCP
在传统嵌入式系统开发中,控制算法与系统逻辑通常直接以 C/C++ 代码的形式实现。开发流程往往是:
需求分析 → 手写代码 → 编译下载 → 上板调试 → 修改代码 → 重新下载。
这种"代码驱动"的开发方式,算法逻辑与底层实现高度耦合,调试周期长,可维护性差,难以满足快速迭代和可靠性要求。
1.1 基于模型的开发(Model-Based Design,MBD)
Model-Based Design(基于模型的设计,MBD)是一种以系统模型为核心的开发方法。
MBD 的开发流程是: 需求分析 → 系统建模 → 仿真验证 → 自动代码生成 → 硬件测试 → 验证确认。控制算法、系统逻辑首先以模型形式构建,通过自动代码生成工具,将模型直接转换为可在目标硬件上运行的嵌入式代码。
基于 Simulink + STM32 实现嵌入式开发的核心步骤如下:
- 在 Simulink 中搭建算法模型并进行仿真验证;
- 配置STM32硬件支持包,将模型自动转换为针对STM32优化的C代码;
- 通过处理器在环(PIL)测试验证生成代码在真实芯片上的数值准确性;
- 将代码部署到STM32硬件,并利用外部模式进行实时参数调整与信号监控。
整个过程以模型为核心,确保从设计到硬件实现的一致性。
1.2 快速控制原型(Rapid Control Prototyping,RCP)
在 MBD 流程中,快速控制原型(Rapid Control Prototyping)是指在算法尚未完全定型之前,将基于模型自动生成的代码快速部署到真实硬件上,并通过在线监控与参数调节手段,对算法行为进行验证与调整的实验方式。
RCP 的核心流程与特点是:
- 快速构建:
在 Simulink/Simscape 等工具中,专注于用图形化模块设计控制算法(如PID、状态反馈、观测器),而无需编写任何底层驱动或通信代码。 - 自动实现:
通过实时目标硬件(如本例的 STM32 Nucleo 开发板)和配套工具链,将算法模型自动编译、链接,并下载到实时硬件中运行。目标硬件拥有标准I/O接口,可直接连接传感器和执行器。 - 实时验证:
实时硬件以确定性的高速采样周期(可达微秒级)运行算法模型,直接控制真实的被控对象(如电机、车辆、机械臂)。工程师可以在仿真运行中实时调整参数、监控信号,并立即观察物理系统的响应。
本文介绍 基于目标硬件的 MBD 快速原型实验,使用 Simulink + STM32CubeMX 将模型自动生成的代码部署到 STM32G431 控制板上,并通过 External Mode(Monitor & Tune) 进行在线监控与调节。
2. 实验的软硬件条件
必需的硬件:
- STM32 Nucleo 开发板(如:NUCLEO-G431RB 开发板,也可以选择其它 STM32 开发板)
使用 CubeMX 在任意的 STM32 F4、F7、G4 等系列 MCU 的开发板上,设计、仿真和部署 Simulink 模型,适用于从快速原型设计到产品化的全过程。 - Micro-micro USB 数据线,或 USB Type-A 至 Micro-B 连接线缆,用于将STM32 Nucleo 板连接到 PC
NUCLEO 开发板支持两种不同的PIL通信接口:ST-LINK和串口。
NUCLEO-G431RB 开发板支持通过 ST-LINK 的 USB 连接提供的 Serial over USB 进行串行通信,不需要任何额外的硬件,只需要一根连接 Nucleo 板的 Micro-micro USB 数据线。串行通信接口 需要一根USB TTL-232线缆,使用串行通信接口运行PIL仿真比使用ST-LINK要快得多。
必需的软件:
- STM32CubeMX (推荐使用 v6.12.0)
- STM32CubeProgrammer (推荐使用 v2.17.0)
- MATLAB/Simulink(本文使用 MATLAB R2022b)
- Embedded Coder:生成可读、紧凑且快速的 C 和 C++ 代码,用于量产使用的嵌入式处理器。
- Simulink Coder:从 Simulink 模型、Stateflow 图和 MATLAB 函数生成并执行 C 和 C++ 代码,用于实时和非实时应用,包括仿真加速、快速原型构建和硬件在环测试
硬件支持包
- STM32Cube_FW_G4 固件包(根据所用 MCU 选择对应的固件包),是 STMicroelectronics(意法半导体)官方发布的标准驱动程序库和开发资源,构成了连接芯片硬件与上层应用的基础软件层。
- Embedded Coder Support Package:嵌入式硬件支持包,为嵌入式 MCU 生成可读、紧凑且快速的 C 和 C++ 代码。
- Embedded Coder Support Package for STMicroelectronics STM32 Processors
STM32 处理器的嵌入式硬件支持包,是 MATLAB 开发环境为 STM32 微处理器提供的一套专用工具,使用户能够在STM32设备上构建、加载和运行Simulink模型,。
- Embedded Coder Support Package for STMicroelectronics STM32 Processors
3. Simulink + STM32 基于模型的嵌入式开发
3.1 用 STM32CubeMX 创建工程
本例使用 STM32CubeMX 创建新的 STM32 工程,然后在 Simulink 模型中关联该 CubeMX 工程文件。
-
打开 STM32CubeMX。
-
选择 New Project(或Ctrl-N快捷键)新建工程。
选择 STM32G431RB 作为目标 MCU(参考开发板的 MCU 型号)新建 CubeMX 工程,进入 New Project 界面,将工程保存为 "STM32G431_PIL01"。自动转入 CubeMX 的 Pinout Configuration 视图。
-
管脚配置(Pinout Configuration)
(1)选择 "System Core -- SYS" 设置调试器类型,将 Debug 模式设为 "Serial Wire"。
(2)选择 "System Core -- SYS" 设置基础时钟源,将 Timebase Source 设为 "TIM2"------非常重要!
注意:Timebase Source 默认为 "SysTick",但在 STM32支持包中 "SysTick" 已经用作框架的基础时间功能,因此必须修改为 非"SysTick" 的其它定时器。否则在编译项目时会报错------非常重要!。

(3)选择 "System Core -- RCC" 配置时钟模式,设置高速晶振为外部时钟,将 High Speed Clock (HSE) 设为 "Crystal/Ceramic Resonator"。

(4)选择 "System Core -- GPIO" 配置GPIO。
在右侧 Pinout view 图中,搜索 PA5 管脚(在 NUCLEO 开发板中 连接LD2 灯),将其设置为 GPIO_Output。
搜索 PC13 管脚(在 NUCLEO 开发板中 连接蓝色用户按键 User Button),将其设置为 GPIO_EXTI13。
EXTI 可以监测指定GPIO的电平信号,当电平变化时,EXTI向NVIC发出中断申请,支持上升沿、下降沿、双边沿、软件触发。如果发生EXTI外部中断,可以发生中断响应或者事件响应,中断响应就是执行中断程序,事件响应是操作外设而不触发中断。

- 在 Clock Configuration 视图进行时钟配置,如下图所示。
本实验对于时钟时钟设置没有太多要求,只要设置正确即可。本例中使用外部 48MHz晶振,具体设置如下图所示,只供参考。

- 点击菜单栏 "Project Manager" 进入工程配置界面,如下图所示。
(1)在 Project Name 输入项目名称 "STM32G431_PIL01"。
(2)在 Toolchain/IDE 选择 IDE 工具为 "STM32CubeIDE"(也可以根据需要选择其它 IDE 工具 )。
(3)在 Project 中勾选 "Do not generate the main()",在生成代码时不生成 main.c 文件中的 main() 函数。
(4)在 Project 中取消选中 "Generate Under Root"。
(5)在 "Project Manager" 继续向下拉,"在 MCU and Firmware Package" 栏中,取消选中 "Use latest available version",根据所安装的 G4 固件版本,选择 "STM32Cube FW_G4 V1.6.0";
如果固件包不是安装在默认路径,则要取消选中 "Use Default Firmware Location",通过 Browse 选择固件包的安装路径。

- 可选地,在工程配置界面点击左侧 "Code Generator",勾选 "Generate peripheral initialization as a pair of '.c/.h' files per peripheral",让每个外设生成独立的'.c/.h'文件。

- 在工程配置界面点击左侧 "Advanced Settings",
(1)"Driver Selector" 默认为硬件抽象层(HAL),强烈建议全部设置为底层库(LL),------** 非常重要!否则编译会报错** 。
在 Embedded Coder Support Package for STM32 的官方文档中明确要求:为实现最优性能与最小内存占用,建议使用底层(LL)驱动。虽然可以使用硬件抽象层(HAL)驱动,但不推荐将其用于量产代码生成。
(2)在 Advanced Settings 中,将 "Generated Function Calls" 的 "Visibility(Static)" 勾选项全部取消,对所有外设初始化函数调用取消选择可见性(静态)。

- 完成以上配置后,使用快捷键 "CTL+S" 或点击 File--Save Project,保存 CubeMX 项目文件。
注意:在 STM32CubeMX 中配置完成后,不要点击 "GENERATE CODE" 生成代码,而是直接保存项目文件 "STM32G431_PIL01.ioc"。
3.2 创建 Simulink 仿真模型
在 CubeMX 项目文件所在的路径(例如:"D:\Matlab\StmMBD2025\STM32G431_PIL01")下新建 Simulink 仿真模型,注意:仿真模型 .slx 与 CubeMX 项目 .ioc 要保存在同一个目录下。
-
运行 MATLAB 软件,打开 Simulink。
-
创建新的 Simulink 模型,保存到本项目路径下:"D:\Matlab\StmMBD2025\STM32G431_PIL01\STM32G431_PIL01.slx"。

- 搭建仿真模型。
在仿真模型中添加 STM32G4xx MCU 的 "Digital Port Write" 模块。
(1)在菜单栏选择 "仿真--库浏览器" 打开库浏览器,选中 "Embedded Coder Support Package for STMicroelectronics STM32 Processors -- STM32G4xx Based Boards"。
(2)从 STM32G4xx 库中选择 "Digital Port Write" 模块,将其拖动到右侧的模型窗口。
(3)设置 "Digital Write" 模块参数。按照 CubeMX 项目中的 GPIO 管脚配置,选择 Port name 为 "GPIOA",将 Pin number 设为 "[5]",即将 PA5 管脚设置为 GPIO_Output。

(4)在仿真模型中添加 "Pulse Generator" 脉冲发生器模块。如下图所示,设置模块参数为:周期 1秒,脉冲宽度(占空比)为50%

(5)可选地,在仿真模型中添加 "Scope" 示波器模块。
在 "仿真" 窗口点击 "运行" 按钮,观察示波器的输出波形。如下图所示,示波器显示周期为 1sec 的方波。
双击脉冲发生器模块 Pulse Generator,修改参数 "周期"、"脉冲宽度" 后再开始仿真运行,可以得到不同周期和脉宽的波形。

3.3 模型配置与代码自动生成
3.3.1 Simulink 模型配置
在 Simulink 菜单栏选择 "建模 - 模型设置" (也可以用 CTRL+E 唤出),打开"配置参数"对话框。
- 在左侧边栏中选择"求解器",如下图所示。
(1)在右侧 "仿真时间" 设置为 "inf"。
(2)在 "求解器选择" 选项设置类型为 "定步长","固定步长(基础采样时间)" 设为 "1e-4" (对应于 MCU 的 ADC 采样频率为 10kHz)。
(3)可选地,在 "任务和采样周期选项"下勾选:"将每个离散速率视为单独任务"和"自动处理数据传输的速率转换"。

-
**检查和确定 PC 与 STM32G431 开发板连接正常。**在左侧边栏中选择 "硬件实现",在 "Hardware board: " 选项右侧的下拉框中选择 "STM32G4xx Based"。如下图所示。

-
点击 "Target hardware resources" ,展开目标硬件资源设置,关联 STM32CubeMX 工程文件。
(1)点击 "Browse..." 选择 CubeMX 创建的工程文件 "STM32G431_PIL01.ioc"。
(2)关联 CubeMX 工程文件后,系统将自动识别目标设备为 STM32G4 系列,设备 ID为 STM32G431R(6-8-B)Tx。
(3)打开设备列表 "Device list",并点击 "Refresh" 按钮刷新,显示连接的设备为 "STM32G43x/STM32G44x",表明目标设备配置成功。

- 点击 "Target hardware resources--Groups--Connectivity",将 "USART/UART" 设为 "USART3",将 "Serial port" 设为 PC 机连接 STM32 开发板的 COM 端口。具体端口号可以查看 Windows "设备管理器" 中的 "端口(COM和LPT)"。
点击 "确定" 保存上述配置。
- 完成Simulink 模型配置,保存为文件 STM32G431_PIL01.slx。注意仿真模型 .slx 与 CubeMX 项目 .ioc 要保存在相同的路径下。
3.3.2 STM32 代码生成与部署
-
在 Simulink 打开仿真模型 STM32G431_PIL01.slx。
-
在 "硬件(Hardware)" 窗口点击 "编译、部署和启动"(Ctrl+B 快捷键),就启动模型 STM32G431_PIL01 的代码生成和编译过程,生成完整的嵌入式工程文件和可烧录文件,并加载到 NUCLEO-G431RB 开发板。
Simulink 自动完成:
- 代码自动生成,
- 基于 Embedded Coder,将模型转换为 C 代码
- 调用 STM32CubeMX 生成外设初始化代码
- 生成完整的嵌入式工程文件(*_ert_rtw 目录)
- 编译与链接
生成的 C 代码通过交叉编译工具链进行编译和链接,形成:.elf(调试文件)和 .hex / .bin(可烧录文件) - 程序下载与启动
编译完成后,程序会通过 ST-LINK 下载到 STM32G431 开发板中,并立即开始在目标硬件上运行。
模型编译过程的主要信息显示在 "诊断查看器" 中,编译摘要如下。
如果编译中发生错误,错误信息也将显示在 "诊断查看器" 。
c
### 正在启动 STM32G431_PIL01 的编译过程
### 正在为 '模型特定' 文件夹结构生成代码和工件
### 正在将代码生成到编译文件夹中: D:\Matlab\StmMBD2025\STM32G431_PIL01\STM32G431_PIL01_ert_rtw
### Invoking Target Language Compiler on STM32G431_PIL01.rtw
### Using System Target File: D:\Matlab\R2025b\rtw\c\ert\ert.tlc
### Loading TLC function libraries
...
### STM32CubeMX version used is 6.12.0
### Firmware version used is STM32Cube_FW_G4_V1.6.1
### 使用工具链: GNU Tools for ARM Embedded Processors
### 'D:\Matlab\StmMBD2025\STM32G431_PIL01\STM32G431_PIL01_ert_rtw\STM32G431_PIL01.mk' 是最新的。
### 正在编译 'STM32G431_PIL01': "D:\Matlab\R2025b\bin\win64\gmake" -f STM32G431_PIL01.mk all
...
### Successful completion of build procedure for: STM32G431_PIL01
### 'STM32G431_PIL01' 的 Simulink 缓存工件是在 'D:\Matlab\StmMBD2025\STM32G431_PIL01\STM32G431_PIL01.slxc' 中创建的。
编译摘要
顶层模型目标:
模型 编译原因 状态 编译持续时间
======================================================
STM32G431_PIL01 生成的代码已过期。 代码已生成并完成编译。 0h 0m 58.681s
编译了 1 个模型,共 1 个模型(0 个模型已经是最新的)
编译持续时间: 0h 0m 58.926s
编译过程已成功完成

- 在 STM32G431 开发板上运行程序,开发板上的 LED 灯(LD2)会按照设定的频率和占空比闪烁,表示代码正在运行。
修改脉冲发生器 "Pulse Generator" 的周期、脉宽等参数,可以改变 LED 灯的闪烁频率。
在本节中,开发者没有手写任何底层代码,实现了从模型到硬件的一键式部署。
4. Simulink 在线监控与调节
4.1 外部模式的运行机制
将代码下载到目标硬件(开发板)之后,程序可以在 开发板独立运行,但开发者只能通过示波器等设备检测外部信号,很难实时观察算法内部状态。为此,Simulink 提供了在线监控与调节(Monitor & Tune)功能,也称为 外部模式。
Simulink 外部模式(External Mode)是一种在模型生成的代码运行于目标硬件时,实现 Simulink 与硬件实时双向通信的工作模式。在硬件运行时,可以从 Simulink 界面实时监视、记录信号数据,并动态调整模型参数。
其核心功能包括:
- 实时信号监视:在 Simulink 的 Scope、Display 等模块中,实时显示目标硬件上正在产生的信号波形或数值。
- 动态参数调优:在模型运行期间,直接修改 Gain、PID 等模块的参数,并立即生效,观察系统响应变化。
- 数据记录:将硬件运行的数据实时传回主机,保存到 MATLAB 工作区或文件,用于后续分析。
- 控制执行:从 Simulink 界面启动、停止、暂停目标硬件上模型的运行。
外部模式在 PC 主机(Host PC)与 目标硬件(Target,如 STM32 Nucleo 开发板) 之间建立了一个通信通道:
bash
Simulink 用户界面 (主机)
↓↑ (TCP/IP、串口、CAN 等协议)
外部模式 MEX 文件 (通信管理)
↓↑ (XCP/串口等协议)
目标硬件上的监控代码 (与生成的应用代码一起运行)
↓
控制算法 (在目标硬件上实时执行)
为外部模式生成代码时,Simulink Coder 会在应用代码中插入额外的"监控代码",用于打包信号数据和接收参数指令。主机与目标硬件通过物理链路(如 USB 转串口)建立连接,使用 XCP 等协议传输数据。在 Simulink 中操作时,指令被发送到目标,目标将请求的数据传回,并在 Simulink 的界面显示。
以 STM32 为例,Simulink 外部模式的典型工作流程如下:
- 配置:在 Simulink 配置参数中,启用 External Mode,选择 Transport Layer 为 Serial,设置正确的 COM 口和波特率。
- 生成与部署:以外部模式生成代码,编译并下载到 STM32 开发板。
- 连接:在 Simulink 中点击 "Monitor & Tune" 按钮。软件自动连接目标板。
- 监控与调参:连接成功后,打开模型中的 Scope 即可看到实时数据流;双击 Gain 模块修改数值,硬件上的控制律会立即随之改变。
4.2 STM32CubeMX 配置 LPUART1 虚拟串口
在 Nucleo-G431RB开发板上,默认 LPUART1(PA2/PA3)接到 ST-LINK 的虚拟串口。
- 在 STM32CubeMX 中,配置 LPUART1 虚拟串口。
(1)选择 "Connectivity -- LPUART1" 配置 LPUART1,设置模式(Mode)为 "Asynchronous"。在右侧 "Pinout view" 视图中将自动分配引脚 PA2 为 "LPUART1_TX"、PA3 为 "LPUART1_RX"。在 LPUART1 参数中设置:
java
Baud Rate:115200 Bits/s
Word Length:8 Bits
Parity:None
Stop Bits:1
Data Direction:Receive and Transmit(收发都开)

(2)注意,在 "Connectivity -- LPUART1" 中选择 "NVIC Settings" 配置 NVIC,对于 "LPUART1 global interrupt" 取消勾选 "Enable ",即关闭 LPUART1 的 NVIC/中断生成。
(3)可选地,在 "Connectivity -- LPUART1" 中选择 "DMA Settings" 配置 DMA 传输,添加:LPUART1_RX 和 LPUART1_TX。
- 点击菜单栏 "Project Manager" 进入工程配置界面,点击左侧 "Advanced Settings" 配置新增的外设 LPUART1。
(1)将 "Driver Selector" 全部设置为 "LL"(默认为 "HAL"),为外设选择底层库 (LL) 。
(2),将 "Generated Function Calls" 的 "Visibility(Static)" 勾选项全部取消,对所有外设初始化函数调用取消选择可见性(静态)。

4.3 Simulink 外部模式配置
- Simulink 模型设置:
在 Simulink 菜单栏选择 "建模 - 模型设置" (也可以用 CTRL+E 唤出),打开"配置参数"对话框。
(1)在左侧边栏中选择"数据导入/导出(Data Import/Export)"。取消勾选 "单一仿真输出(Single simulation output)",因为外部模式下代码不会在 MATLAB 工作区生成 out 对象。保存格式(Format)选择 "数据集(Dataset)"。

(2)在左侧边栏中选择"硬件实现",点击 "Target hardware resources--Groups--Connectivity",将 "USART/UART" 设为 "LPUART1",将 "Serial port" 设为 PC 机连接 STM32 开发板的 COM 端口。具体端口号可以查看 Windows "设备管理器" 中的 "端口(COM和LPT)"。

(3)可选地,点击 "Target hardware resources--Groups--USART/UART",勾选 "show LPUART1 configurations""。

点击 "确定" 保存上述配置。
- 设置要监测的信号。
(1)用鼠标单击一根信号线,使信号线高亮。
(2)点击鼠标右键唤出菜单条,选中 "记录所选信号(Log Selected Signals)",将该信号标记为监测信号。
(3)在标记的信号线上会出现一个 小圆点发射 的图标,如下图所示。

在 Monitor & Tune(外部模式) 下,MCU(STM32)在开发板上真实运行,Simulink 不会自动把所有信号传回 PC,只有被明确标记为 "记录(Log)" 的信号才会通过 XCP 从 MCU 上传到 PC。
4.4 基于 SDI 在线监控
在 External Mode 下,控制算法运行在 STM32G431 的目标硬件上,模型时间来自目标端本地计时器,Simulink 主机不再控制仿真时间推进。在线监控与调节主要依赖 "数据检查器(Simulation Data Inspector, SDI),而非 Scope 模块。
- 完成信号记录后,启动 "Hardware → 监控与调节(Monitor & Tune),即可打开 "数据检查器(SDI)" 对数据进行观察。
(1)SDI 左侧显示 Run 列表(每次外部模式运行对应一个 Run)
(2)展开当前 Run,勾选已记录的信号 "Pulse Generator"
(3)勾选后,信号曲线会自动显示在右侧绘图区

"数据检查器(SDI)"提供了灵活的可视化手段,适合原型阶段的快速分析:
- 横坐标(时间)支持滚轮缩放、拖动,可手动指定时间区间(如 2--5 s)
- 纵坐标(幅值)支持自动缩放,或手动设置范围(如 ADC:0--4095)
- 当多路信号量纲差异较大时,可将信号绘制在独立坐标轴中,避免相互干扰。
4.5 用户按键在线调节
<待补充>
5. 小结
将 External Mode + SDI 引入 STM32 快速原型实验,实现了真正意义上的所见即所得。Simulink 数据检查器中的曲线来自真实硬件的运行结果,参数调整后的变化可立即反馈到系统行为,无需反复编译、下载和重启硬件。
通过"显式信号记录 + 硬件在线运行 + 实时可视化",MBD 快速原型实验不再只是代码验证,而是一次面向系统行为的工程实验。
(本节完)
参考资料:
-
Embedded Coder 快速入门,(https://ww2.mathworks.cn/help/ecoder/product-fundamentals.html?s_tid=CRUX_lftnav)
-
安装 STMicroelectronics STM32 处理器的支持程序,(https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ug/install-support-for-stm32-board-processors.html)
-
Code Verification and Validation with PIL and Monitoring and Tuning, (https://www.mathworks.com/help/ecoder/stmicroelectronicsstm32f4discovery/ug/code-verification-and-validation-with-pil-and-external-mode.html)
版权声明:
youcans@xidian 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/155988573)
Copyright@youcans 20245
Crated:2025-12