本次实验所使用的软件版本和硬件平台参数如下:
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 arduino 2017a
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亮灭