搭建成功simulink-stm32硬件在环开发环境
本次实验所使用的软件版本和硬件平台参数如下:
Matlab版本: 2021b
STM32硬件平台:YF_STM32_Alpha 1R4(参考自STM32 Nucleo F103RB官方开发板)


YF_STM32_Alpha开发板

STM32 Nucleo F103RB 开发板
2.1 STM32硬件支持包下载
读者朋友平时使用的是和谐版Matlab,还有些时候由于网络差强人意直接用软件上的“附加功能->获取硬件支持包”无法进行安装,而一种高效且成功率极高的离线方式安装matlab硬件支持包不失为更好的一个选择。

图2.0 Matlab附加功能硬件支持包安装选项
支持包离线安装软件下载连接:https://ww2.mathworks.cn/support/install/support-software-downloader.html?s_tid=srchtitle%20arduino%202017a
SupportSoftwareDownloader_R2021b_win64.exe(不同年份下载的版本可能不一样,但是总体上是向下兼容的)
双击

软件安装包,弹出如图2.1、2.2所示对话框,输入注册邮箱地址和密码

图2.1 邮箱输入

图2.2 密码输入
根据个人Matlab版本进行选择,如图2.3所示,然后点击"下一步"

图2.3 Matlab版本选择
搜索要下载的硬件支持包“STM”关键词,如图2.4所示,将要下载的支持包勾选上,然后点击“下一步”

图2.4 硬件支持包搜索下载
选择安装包的放置路径,如图2.5所示,该路径最好是方便寻找的位置,后面安装时会用到该路径,然后点击“下一步”

图2.5 硬件支持包保存路径选择
接下来要下载的硬件支持包列表如图2.6所示,直接点击“下一步”即可

图2.6 接下来要下载的硬件支持包
Matlab许可协议部分如图2.7所示,直接点击“我接受”即可

图2.7 许可协议
开源许可协议如图2.8所示,直接点击“下一步”

图2.8 开源许可协议
下载中的STM32硬件支持包,如图2.9所示

图2.9 下载中的安装包
2.2 指定下载路径安装STM32硬件支持包
找到matlab的安装路径下的“install_supportsoftware.exe”文件路径,然后打开windows控制台,切换到该路径下,作者的matlab安装路径:C:\Program Files\MATLAB\R2021b\bin\win64,如图2.10所示,作者的离线安装包位置如图2.11所示,控制台指令执行方式如图2.12所示。

图2.10 “install_supportsoftware.exe”安装路径
硬件支持包安装指令如下:
SupportSoftwareInstaller.exe -archives C:\Users\dell\Downloads\MathWorks\SupportPackages\R2021

图2.11 硬件支持包放置位置
![]()
图2.12 控制台安装命令
运行完该指令后,根据电脑性能状况可能需要的时间比较长,等待一段时间后会弹出如图所示对话框,输入用户名和密码后,进入到支持包安装选项,根据个人需要选择要安装的硬件支持包,如图2.13所示

图2.13 邮箱和密码输入
如果读者朋友电脑上下载有多个离线硬件支持包,根据个人需要选择需要安装的硬件支持包,如图2.14所示。

图2.14 选择要安装的硬件支持包
如图2.15所示,直接点击“下一步”即可

图2.15 协议许可
安装过程中根据个人电脑性能需要的时间不太一样,需要耐心等待一段时间,如图2.16、2.17所示,直到硬件支持包成功安装成功

图2.16 硬件支持包安装中...

图2.17 安装好一部分效果
安装完成后的效果如图2.18所示,点击关闭即可

图2.18 STM32硬件支持包安装完成
2.3 创建STM32-simulink工程验证
接下来我们一起创建一个简单的LED点亮工程来验证下STM32的Matlab硬件支持包是否安装正确,找到Matlab主页面中的"Simulink"图标,如图2.19所示,单击打开

图2.19 Matlab R2021b中simulink位置
稍等一会儿,弹出如图2.20所示的simulink起始页,然后点击“空白模型”创建新的Simulink模型

图2.20 Simulink起始页
进入到创建好的Simulink模型页面,如图2.21所示,这里可以将其保存并命名,然后点击“库浏览器”

图2.21 "LED_Blinker"Simulink模型页面
进入到“Simulink库浏览器”页面,找到并点击“Simulink Coder Support Package for STMicroelectronics Nucleo Boards->Common”,如图2.22所示,然后将“Digital Write”模型单击拖入“LED_Blinker”模型页面中

图2.22 STM32 Simulink库浏览器中“Digital Write”模型位置
在“LED_Blinker”模型中添加“Pulse Generator”脉冲产生模型用于产生周期为1S,占空比为50%的信号脉冲,参数设置如图2.23所示。

图2.23 “Pulse Generator”模型参数设置
然后对“Digital Write”模型参数进行设置,如图2.24所示,此处引脚为YF_STM32_ALPHA开发板上的LED灯,与单片机的PB8相连接

图2.24 “Digital Write”模型参数设置
接下来要对硬件配置参数进行设置,找到“建模”栏中的“模型设置”按钮单击,如图2.25所示

图2.25 “模型设置”按钮位置
进入到“配置参数”对话框,找到“硬件实现栏”,然后在“Hardware board”栏中选择“STM32 Nucleo F103RB”选项,如图2.26所示

图2.26“配置参数”硬件板设置
⚠️注 意:此处是硬件在环能否成功进行的关键,能否正确进行硬件在环仿真硬件上需要具备两个条件
条件一:必须使用STLINK下载器;
条件二:在环仿真默认通信端口为USART2(PA2、PA3),需要连接正确;
如图2.27所示,将STLINK与USB转串口模块正确连接,本实验中采用的开发板自带STLINK 2V1版本下载器,包含串口通信功能,已经与STM32F103RBT6的PA2、PA3正确连接

图2.27 硬件在环硬件连接示意图
“配置参数”设置部分将"External mode"部分设置为与之相连的端口,如图2.28所示STLINK 的串口端口号为"COM121",设置好后点击“应用”并点击“确定”。

图2.28“External Mode”参数设置
回到“LED_Blinker”模型页面,切换到“HARDWARE”栏,将“Stop Time”设置为“inf”,然后点击“Monitor & Tune”进行在环仿真,如图2.29所示,仿真成功的效果如图2.30所示。

图2.29“HARDWARE”栏参数

图2.30 正在进行中的硬件在环仿真
为了让硬件在环仿真交互效果更加明显,这里将“Pulse Generator”换成“constant”模块,如图2.31所示,然后,再次点击“Monitor & Tune”按钮

图2.31 使用“constant”控制的模型
通过改变“constant”变量的值来控制LED灯的亮灭,如图2.32所示

图2.32 改变“constant”值控制LED亮灭
相关文章:
搭建成功simulink-stm32硬件在环开发环境
本次实验所使用的软件版本和硬件平台参数如下: Matlab版本: 2021b STM32硬件平台:YF_STM32_Alpha 1R4(参考自STM32 Nucleo F103RB官方开发板) YF_STM32_Alpha开发板 STM32 Nucleo F103RB 开发板 2.1 STM32硬件支持包下载 读者朋友平时使用的是和谐版M…...
【计算机网络】UDP协议
UDP的结构 我们学习一个协议最主要的就是理解它的报文格式,对于UDP协议来说 我们看下面的这张图。 16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度。UDP报文长度占两个字节,16位表示的数据范围(0-…...
ubuntu安装mysql8.0.35过程和报错处理
ubuntu安装mysql8.0.35过程 1.更新包列表:首先,确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包: sudo apt update sudo apt upgrade2.安装MySQL服务器:运行以下命令来安装MySQL服务器: …...
SQL基础理论篇(一):什么是SQL
文章目录 什么是SQLSQL的四大部分常用的SQL标准参考文献 什么是SQL SQL的全称是Structured Query Language,即结构化查询语句。 其最早诞生于1974年,IBM研究员发布的一篇论文"SEQUEL:一门结构化的英语查询语言"。这几十年里&…...
物联网AI MicroPython学习之语法 GPIO输入输出模块
学物联网,来万物简单IoT物联网!! GPIO 介绍 模块功能: GPIO通用输入输出。 接口说明 GPIO - 构建GPIO对象 函数原型:Pin(port, dir , pull)参数说明: 参数类型必选参数?说明portintY对应开发板的引脚号…...
phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction等其它问题的解决办法
phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction,也访问不了indexAction方法,但是可以访问ArticleController里面的任意方法。访问其它方法出现这个错误“php - phalcon IndexController handler class cannot be loaded” 有人说是Apache 的rew…...
docker安装AWVS 23.9.231005181
本文声明仅AWVS用作学习使用 将镜像文件secfa_awvs.tar复制到目标机器上。 我的百度网盘文件路径: 链接:https://pan.baidu.com/s/1Pe4qlVp9XKbZ3dLrouaP2w 提取码:67mc –来自百度网盘超级会员V6的分享 在目标机器上,使用以下命…...
数据同步工具调研选型:SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比
产品概述 Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主…...
【Vue】Vue3 Swiper 插件 loop 无限滚动、并且暂停的问题
上午把官网的合作伙伴做了,好坑,swiper 自动滚动展示的数量 slides-per-view 的两倍必须小于等于 *SwiperSlide* 组件的渲染数量,才能进行自动滚动,官网居然都没有说。 比如 slidesPerView 6,那么 SwiperSlide 组件渲…...
MySQL的DATE_FORMAT函数使用
在MySQL中,可以使用DATE_FORMAT函数将日期格式化为所需的格式。DATE_FORMAT函数接受两个参数:日期和格式字符串。 以下是一些常用的日期格式化选项: %Y:四位数的年份(例如:2023)%y:…...
MySQL的SQL预编译及防SQL注入
文章目录 1 SQL语句的执行处理1.1 即时SQL1.2 预处理SQL1.2.1 预编译SQL的实现步骤1.2.2 预编译SQL的C使用举例1.2.3 MYSQL_BIND()函数中的参数类型: 2 SQL注入2.1 什么是SQL注入2.2 如何防止SQL注入 1 SQL语句的执行处理 SQL的执行可大致分为下面两种模式…...
博流BL602芯片 - 烧录配置
硬件介绍 淘宝上买的核心板,大概结构如上。 直接插入电脑usb,即可实现供电、下载(控制BOOT/EN)、串口通讯 固件包 1、环境配置 1.1串口 开发板使用了 CH340G 的 USB 转串口芯片,自行安装CH340串口驱动。 1.2编译环境…...
websocket实现实时数据推送,发布订阅重连单点登录功能
需求:使用websocket不借助插件实现发布,订阅,网络断开重连,单点登录后挤号的功能 1.单点登录(同一账号同一时间只有一个在线,禁止多用户登录) 实现:在用户登录之后获取到token令牌并…...
前端代理模式之【策略模式】
文章目录 前言介绍代码场景例子优缺点后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端设计模式 🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误&#…...
人工智能-深度学习之残差网络(ResNet)
随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,在这种网络中,添加层会使网络更具表现力, 为了取得质的突破,我们需要一些数学基础知识。 ResNet沿…...
arm2 day6
串口实现单个字符的收发 main.c uart4.c uart4.h...
RxSwift和Combine的相同点和使用例子
RxSwift 和 Combine 都是响应式编程框架,用于简化异步和基于事件的代码。它们有很多相似之处,主要体现在设计理念和编程模式上。以下是 RxSwift 和 Combine 的主要相同点,以及它们的应用场景: 相同点 1.响应式编程:两…...
[Linux打怪升级之路]-信号的保存和递达
前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、信号的保…...
【科研新手指南3】chatgpt辅助论文优化表达
chatgpt辅助论文优化表达 写在最前面最终版什么是好的论文整体上:逻辑/连贯性细节上一些具体的修改例子 一些建议,包括具体的提问范例1. 明确你的需求2. 提供上下文信息3. 明确问题类型4. 测试不同建议5. 请求详细解释综合提问范例: 常规技巧…...
在应用内维护域名缓存时遇到的问题
近期参与的项目中,依赖DNS服务器来解析外部的业务集群,遇到了一连串的问题。 远端的业务集群基于HTTP/HTTPS协议,提供业务服务,集群中包含了多个业务节点,当前方案中在DNS服务器上配置域名,指向业务集群中的…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...
Canal环境搭建并实现和ES数据同步
作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...
Qt Quick Controls模块功能及架构
Qt Quick Controls是Qt Quick的一个附加模块,提供了一套用于构建完整用户界面的UI控件。在Qt 6.0中,这个模块经历了重大重构和改进。 一、主要功能和特点 1. 架构重构 完全重写了底层架构,与Qt Quick更紧密集成 移除了对Qt Widgets的依赖&…...
