STM32F407ZGTx+simulink+STM32CubeMX+keil stm32-mat/target实现simulink生成单片机代码

Simulink&&STM32开发(一)开发环境搭建 Simulink&&STM32开发环境搭建 阅读详情

配置环境

使用的板子是正点原子STM32F407ZGT6,这个应该没有要求,任意版本均可。
stm32 mat/target,是一个matlab插件。可能不会再更新了,起到的作用是让simulink生成代码时触发cubemx。对版本的要求比较苛刻,我采用的是最新版本,在开发文档中可见对matlab与cubemx版本有要求:
stm32-mat/target对matlab、cubemx的版本要求
实际测试中我尝试了matlab R2018a与matlab R2020b,以及CubeMX V6.3.0,代码生成都存在问题。目前的尝试中没有发现第二种能够正常运行mat/target的环境,建议按照开发文档要求的版本使用,即MATLAB R2018b+STM32CubeMX V5.6.0
安装方法:setup后找到安装的文件夹,然后在matlab界面设置路径->添加并包含子文件夹->导入setup的安装路径,如图,STM32那一级文件夹是我的安装路径:
导入插件到matlab

STM32CubeMX,注意选要求的版本

MATLAB R2018b

引用其他人Keil 5.27,CubeMX在5.6只支持Keil 5.27的生成(或许对Keil高版本也可以用,没有尝试)

或许使用Keil之外的软件也可以进行烧写,即STM32CubeMX配置时生成器的更换,暂时没有尝试。

运行流程

STM32CubeMX生成.ioc工程文件

我配置了烧写端口(使用ST-link仿真器)与晶振时间端口,然后设置PF9与PF10为GPIO output(我板子上LED灯的端口),共占用8个
设置烧写口为JTAG4pin形式
两个LED灯端口

然后进行工程设置,重点是ToolChain/IDE ,这里我们选择MDK-ARM V5.27,适配Keil 5.27版本
工程设置
这里重点是第一栏,最好选择Copy only the necessary library files,否则项目的Drivers会变得很大(100M+),不便于项目移动
工程设置
到这里之后按Ctrl+S保存项目即可,无需点击generate code,路径下就会生成一个.ioc文件

Simulink

STM32_Config

首先在matlab里使用cd切到.ioc所在路径(否则simulink生成会出问题),然后打开simulink,先拖入STM32_Config模块:
MCU config,读取.ioc路径
在其内部点击Select STM32 configuration file,选择路径下的.ioc,完成config链接。
MCU config内部配置

simulink config

然后进行simulink工程config,我设置如下:
将解算器设置为离散化,并给出步长(这个步长应该和单片机频率无关,估计只是在仿真里用)
Solver离散设置
代码生成这里的配置要改成使用stm32.tlc
stm32.tlc
有一些教程指出这里的三个comments框也要打上,我使用中没有出现明显问题,这里不打或许无影响(我观察中仍然生成了注释,不知道这里勾选有什么影响),如果发现有问题可以勾选试一下。
Comments配置
这一页中要设定STM32CubeMX启动路径,通常点击Path update框后,点击Update installed path,就会自动搜索CubeMX路径,等待一会后自动完成。
Cubemx路径

GPIO config

之后加入功能模块,我这里需要改变GPIO的状态,所以选Target Support Package里面的GPIO_Write。刚加入可能会报错:
加入GPIO_write后的报错
此时只需要保存自己的simulink模型(.slx文件),然后关闭再打开,GPIO_write模块就会读取正确的端口。如这里显示的GPIOA是错误的,实际上并没有打开A端口,并且点进去也都是全灰端口,无法使用。但重开后模块上的显示变成GPIOF,点击后就有9pin与10pin的可用复选框,与CubeMX中的设置一致。
在这里插入图片描述
这里勾选Pin可使GPIO_write多出一个输入端口,可连接simulink中的信号源等,产生需要的输入:
两个矩形波
我这里加入了两个占空比不同的矩形波信号。

build model

也可以先运行一下,看看各处信号的输出是不是符合预期。
然后就可以进行build model:
build model
注意正常的运行会在build过程中启动STM32CubeMX,并且触发了它的generate code,如果没有触发则生成失败(可以看下STM32CubeMX版本是否是5.6,在我的测试中6.3就不能被触发)
之后目录就会出现Src等文件夹,注意到其中的main.cpp的主循环中包含逻辑:
main.cpp
如果发现while内是个空循环,可能是matlab版本有问题,我在使用2020b版本时while内就为空。

keil

从MDK-ARM文件夹中启动Keil,先编译,再烧写。

simulink自动生成STM32代码详解 1、所需软件 STM32-MAT/TARGET_V5.6.0 STM32CubeMX_V5.6.0 JAVA 64_bit MATLAB_2018b MDK-ARM_V5 下图是STM32-MAT/TARGET_V5.6.0官方手册中的版本要求。 为什么要用这么多软件: STM32CubeMX软件是基于JAVA环境运行的。 STM32-MAT/TARGET在simuli... 阅读详情

相关推荐

MATLAB /Simulink 快速开发STM32(使用st官方工具 STM32-MAT/TARGET),以及开发过程

Matlab生成的代码CTRL+B。

pvmsmfchcs的博客 2758

手把手教你使用MATLAB /Simulink (使用st官方工具 STM32-MAT/TARGET)联合STM32CubeMX自动生成代码

硬件:STM32F103C8T6最小系统 软件: 1.MATLAB 2.STM32Cube MX 3.STM32-MAT/TARGET STM32 MCU启用基于模型的设计工作(Model-Based Design Workflow): 创建可执行模型 自动生成代码 自动化软件集成 即使用matlab配置stm32f103的灯闪烁(PC13)(无需编程) 1.安装MATLAB 参考网络教程 2.安装STM32Cube MX 下载链接 STM32CubeMX - S...

m0_61687959的博客 1万+

利用Simulink定制单片机的底层驱动进行代码生成的方法与流程

通过利用Simulink定制单片机的底层驱动进行代码生成,我们可以在嵌入式系统开发中实现更高效、更可靠的底层驱动。对于底层驱动,我们可以使用Simulink中的低级别模块来实现相应的功能,例如I/O端口控制、中断处理等。Simulink会自动将我们的模型转换为等效的C代码,并将其保存到指定的文件夹中。同时,Simulink还会生成与目标硬件平台相关的启动代码和驱动代码,以确保生成的代码能够正确运行在目标平台上。以下是一个简单的示例,演示了如何在Simulink中创建一个底层驱动模型,并生成相应的C代码。

TcData的博客 990

stm32电机控制基于模型开发_Matlba/Simulink(思路篇)

该部分需完成与stm32的接口设置。

weixin_44769876的博客 1673

stm32-mat_target.zip

stm32-mat_target

STM32mat_target_5.6.0安装包

STM32mat_target_5.6.0安装包

Matlab/Simulink自动生成STM32代码_基于模型的开发_环境搭建

前言 基于模型的开发与直接用HAL, C撸STM32代码并不冲突, 各有各的优势, 互补才是王道. 官方简介 参考 Code generation for STM32 MCUs using MATLAB® and simulink® 必须安装的软件: Matlab R2018b STM32CubeMX 5.6.0 STM32-MAT/TARGET, 5.6.0, 这个是工具包(toolkit) STM32CubeIDE 1.3.0 或 Keil 5.29.0 或 IAR 8.32.3, 选一个工具链(To

weifengdq的专栏 7097

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

Labview与STM32串口通讯--基于Simulink代码生成(二)

程序功能:单片机引脚PD8电平为高时,单片机向上位机发送指令0xAA,PD8电平为低时,不发送指令,同时DS0灯闪烁(单片机为正点原子探索者STM32F407ZGT6) 基于simulink的下位机程序如下:自动生成代码后通过Keil编译、下载到STM32就行了 基于labview的上位机程序: 前面板:程序面板: 注意:前面板要以16进制显示 ...

yhy2690 2221

Matlab自动生成STM32F103C8T6代码_代码及模型

MatlabR2016b Simulink 自动生成 STM32F103C8T6代码例子,让PC13(LED引脚) 按TIM1的1HZ周期闪烁,这是模型及代码部分

别再手动算考勤了!教你用Python+企业微信API自动生成月度报表

本文介绍如何利用Python和企业微信API构建自动化考勤分析系统,实现从数据获取到可视化报表生成的全流程自动化。通过企业微信打卡接口获取数据,使用Pandas进行高效清洗和分析,并生成Excel和HTML格式的报表,大幅提升考勤统计效率。系统支持智能判定考勤状态,如迟到、早退等,并可通过定时任务实现月度自动化运行。

weixin_27875131的博客 288

STM32算法的翅膀之MATLAB

仿真吧我们根本不知道我们要研究的对象的系统传递函数,不仿真直接在设备上运行如果是复杂的算法,没有借助Matlab的话首先找到合适的C算法就很困难,更别说进行调试,数据采集可视化以及分析了。今天就要带大家把Matlab和STM32结合起来,强强联合!废话不多说,开始搞事情!要实这篇文章,首先你得准备好下面的软件环境(今天的文章有点复杂,图片有点多,大家注意一点喽~) MATLAB (阿圆...

qq_39276007的博客 4441

手把手教你排查libstdc++.so.6版本问题:从GLIBCXX缺失到完美解决

本文深入解析Linux系统中常见的GLIBCXX版本缺失问题,以`ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.29' not found`为例,从动态链接原理入手,提供使用`strings`和`find`命令的诊断方法,并详细对比了四种解决方案的优缺点。文章重点推荐通过设置`LD_LIBRARY_PATH`或更新系统库的安全策略,并最终建议使用Docker容器化技术实现环境依赖的根治与统一管理。

j7k8l的博客 300

mdk stm32系列安装包(百度云)

包含: 1.F1 2.F2 3.F3 4.F4 5.F7 6.H7 链接:https://pan.baidu.com/s/1LB4bkSeUhUh3yoQ_WaezWg 提取码:rqz1

weixin_43202354的博客 1792

大连海事大学课设题目/基于LM331的频率电压转换器

部分基于LM331的频压转换的实物连接问题

2301_76649592的博客 3226

CoppeliaSim(原V-REP)新手上路

CoppeliaSim(原V-REP)是一个机器人仿真平台,里面有很多来自别的公司的机器人模型以及完备的物理引擎,我们可以通过python,c++,matlab等语言控制里面的机器人。,您也可以在官网中Downloads里找您需要的版本,一般只需要下载EDU版本就可以了,我下载的是v4.1.0 windows EDU版本。在版本V4之前,CoppeliaSim叫V-REP,在官网可以下载到之前的V-REP版本。

qq_37051669的博客 4万+

simulink联合STM32CubeMX开发串口通信程序

使用SIMULINK联合STM32CubeMX生成STM32F407串口发送数据代码,发送的数据为正弦函数波形。再用SIMULINK写一个串口接收数据模型,接收来自STM32发送的数据,最后绘制出波形。

weixin_45422543的博客 2875

数学之美 | 图论和网络爬虫

文章目录概述图论网络爬虫分析BFSDFSBFS + DFS参考资料 概述 这篇文章主要给大家介绍一下计算机算法中非常重要的一部分——图论,以及它在生活中的应用——网络爬虫。   图论 离散数学是当代数学的一个重要的分支,也是计算机科学的数学基础。它又包括四个分支,而图论便是其中一支,另外三个分别是:数理逻辑、集合论、近代数学。 图论中的图由一些节点和边构成,比如下面这张图 。 在图论中一个很基础...

小小酥梨的博客 3231

使用 Simulink 进行 STM32 编程

欢迎读者,在本博客中,我们将逐步介绍使用 Simulink 进行 STM32 编程的过程。在直接进入步骤之前,我们先讨论一下为什么需要使用Simulink对STM32进行编程?STM32采用ARM cortex M架构。由于其较低的成本和良好的性能,它被用于许多应用。使用 Arduino IDE 对 STM32 进行编程非常简单,因为人们开发了许多库。但是,当您开始开发复杂的嵌入式或控制系统时,使用 Arduino IDE 编写裸机代码是一件忙碌的事情。Simulink 的出现使这个过程变得更加容易。

qq_34187873的博客 4677

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1621

BAT007:批量为当前目录下的文件夹添加前缀或后缀

摘要:编写批处理程序,实现批量为当前目录下的文件夹添加前缀或后缀。

qq_31762031的博客 4052

利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程)

1.简介 这里利用基于STM32F103RCT6的一块自带led灯的开发板,首先通过STM32CUBEMX产生.ioc配置文件,其次对Simulink进行所必须的配置,然后利用Simulink的图形化界面实现简单的使led灯闪烁的逻辑框图,接着就是自动生成代码(生成keil工程文件),最后将代码烧录至芯片中便可实现led灯的闪烁。 1.1 Simulink Simulink想必大家已经再也熟悉不过了,Simulink是美国Mathworks公司推出的MATLAB中的一种可视化仿真工具。Simulink是一个

weixin_42730351的博客 5384

MediaPipe 教程:从安装到应用-全网最全

MediaPipe是Google推出的开源框架,专为构建机器学习管道设计,可以高效处理视频、音频等时间序列数据。本文教程从安装到应用逐步讲解: 安装步骤简单,只需通过pip安装mediapipe包并验证版本; 重点演示人体姿态检测功能,可识别33个身体关键点; 提供基础代码实现,包括视频捕获、关键点检测与可视化; 强调模块化开发,将功能封装成类以提高代码复用性。 教程适合初学者,通过清晰指引和实用代码示例,帮助快速实现计算机视觉应用。

FJN110的博客 1563

MATLAB2018b对接STM32CubeMX生成代码MDK编译

MATLAB2018b对接STM32CubeMX生成代码MDK编译

qq_36625174的博客 1626

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

stm32cube与matlab,stm32cubeMX结合matlab使用

文章目录前言一、软件的安装二、使用步骤1.先配置stm32cubeMX(我这里做的是一个串口通讯)2.matlab的配置3.工程生成总结前言今天带大家把Matlab和STM32结合起来,强强联合!首先你得准备好下面的软件环境matlab(我自己安装的是R2018b)MDK-ARM(良心博主,推荐!!!)STM32cubeMX(这个可以到stm的官网下载,注意不要有中文的路径!!)en.stm32-...

weixin_34221197的博客 1022

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: Opencv入门1:图像的加载、显示与保存
engineoid
博客等级 码龄10年 6粉丝 52原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值