当前位置: 首页 > news >正文

搭建成功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亮灭

相关文章:

  • Ubuntu 22.04安装Rust编译环境并且测试
  • 网络运维与网络安全 学习笔记2023.11.18
  • MIUI解锁BL
  • YOLOv8优化与量化(1000+ FPS性能)
  • Kotlin语言实现单击任意TextVIew切换一个新页面,并且实现颜色变换
  • 基础组件-流量回放(全链路流量回放预研)
  • k8s-集群升级 2
  • 【OpenCV实现图像:OpenCV进行OCR字符分割】
  • C语言 原码、反码、补码
  • MySQL 定时计划任务 事件的使用
  • 蓝桥杯第三周算法竞赛D题E题
  • 导航守卫有哪三种?
  • jenkins+centos7上传发布net6+gitlab
  • C++单调向量算法:132 模式解法三枚举1
  • 【每日一题】—— C. Yarik and Array(Codeforces Round 909 (Div. 3))(贪心)
  • 【node学习】协程
  • 77. Combinations
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Android系统模拟器绘制实现概述
  • Brief introduction of how to 'Call, Apply and Bind'
  • ECS应用管理最佳实践
  • Fabric架构演变之路
  • iOS 系统授权开发
  • JavaScript实现分页效果
  • JavaScript异步流程控制的前世今生
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • react 代码优化(一) ——事件处理
  • tensorflow学习笔记3——MNIST应用篇
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • uni-app项目数字滚动
  • Vue全家桶实现一个Web App
  • 程序员最讨厌的9句话,你可有补充?
  • 反思总结然后整装待发
  • 仿天猫超市收藏抛物线动画工具库
  • 简单数学运算程序(不定期更新)
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 微服务入门【系列视频课程】
  • 微信支付JSAPI,实测!终极方案
  • 函数计算新功能-----支持C#函数
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #define与typedef区别
  • #QT(TCP网络编程-服务端)
  • #Ubuntu(修改root信息)
  • $NOIp2018$劝退记
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (WSI分类)WSI分类文献小综述 2024
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (黑马C++)L06 重载与继承
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (离散数学)逻辑连接词
  • (十一)手动添加用户和文件的特殊权限
  • (四) Graphivz 颜色选择