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在simulink中相当于生成代码的外设驱动库。
- 利用官方的simulink开发库进行开发工作,要首先调用STM32CubeMX软件生成的配置文件 。
百度网盘软件资源分享:链接:https://pan.baidu.com/s/1anbU-S9qEtSVDEMIc18yMA 提取码:9tzi
2、软件下载与安装
2.1 STM32-MAT/TARGET官网下载地址:
https://www.st.com/en/development-tools/stm32-mat-target.html?s_searchtype=partnumber
STM32-MAT/TARGET安装:
过程略,安装之后打开文件夹如图:
1.以管理员身份运行startup.bat 打开MATLAB运行环境。
2.首次打开需要添加路径,在工作空间输入>>pathtool,并把STM32-MAT/TARGET的安装路径加进去。
3.打开simulink的模块库会多一个STM32的列表,如图
2.2 JAVA官网下载网址:
https://www.java.com/zh_CN/download/ie_manual.jsp
JAVA安装:
以管理员身份运行jre-8u112-windows-x64.exe,安装在默认文件夹下。
2.3 STM32CubeMX官网下载地址:
https://www.st.com/zh/development-tools/stm32cubemx.html
下载STM32CubeMX库:
新的版本可以直接安装,在创建工程的时候直接下载不同型号的库。
STM32CubeMX是ST官方开发的支持快速MDK-ARM工程文件生成的软件,可以直接编译成功后下载到目标开发板,省去了手工配置底层代码的工作,利用可视化图形窗口进行高效配置。
例1:用STM32CubeMX生成STM32代码
1、选择MCU
2、设置IO口属性
3、设置下载器和时钟源
4、设置工程名字、保存路径及IDE工具:
5、生成代码、打开代码生成的文件夹,或直接打开工程:
例2:用simulink生成STM32代码
这里用到的版本:
STM32CubeMX-5.3.0
下载地址:https://www.stmcu.org.cn/document/detail/index/id-214984
STM32_MAT_TARGET_V4.4.2
下载地址:https://www.stmcu.org.cn/document/detail/index/id-216053
1、在STM32CubeMX-5.3.0里配置好具体的ARM芯片STM32F103RCTx, 并保存成工程文件myTest3.ioc;(参考例1)
2、simulink系统设置(参考第一篇博客)
3、在SIMULINK里新建一个MODEL文件untitled, 将MCU CONFIG和GPIO _Write这两个模块从工具包(Target Support Package-STM32Adapter)中拖入untitled文件,并在STM32_Config模块中指定myTest1.ioc的文件路径,OK之后该模块自动更名为“STM32F103RCTx”. 说明MCU配置已经成功。
4、双击GPIO write模块,选中引脚IO。
5、完善模型,如图
6、Ctrl+B生成代码
若.ioc文件之前生成了工程文件,自己接打开就可以。
若.ioc文件之前没有生成工程文件,会自动打开STM32CubeMX-5.3.0点击generate code即可。
7、另外还需要注意一点.ioc文件和.slx文件应在同一文件夹下
参考博主:
https://blog.csdn.net/u010411288/article/details/91382302?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromBaidu-2&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromBaidu-2
https://blog.csdn.net/ybhuangfugui/article/details/52225736#commentBox
弯儿:
1、STM32CubeMX打开时会有如下提示:
需安装64bit Java否则会导致STM32CubeMX一些功能不能使用。
2、STM32CubeMX生成的工程文件无法用keil 打开,提示如下
Keil版本的问题,又安装了一个MDK-ARM_V5软件即可。
关于生成项目的软件及版本可以在STM32CubeMX的项目中设置。
3、code replacement library 应选择none
4、添加GPIO模块时提示
Error evaluating 'MaskDialog' callback of GPIO_Write(mask) 未定义函数或变量'Pin_idx' 且 simulink建好模型无法生成代码
软件版本:MATLAB2018_b、STM32-MAT/TARGET_5.6.0、STM32CubeMX_5.6.0
https://www.ilovematlab.cn/thread-485075-1-1.html
By chaikeya 2020/4/30
simulink自动生成STM32代码详解相关推荐
- Matlab/Simulink自动生成STM32代码_基于模型的开发_环境搭建
目录 前言 官方简介 Matlab R2018b安装 STM32-MAT/TARGET 安装 STM32CubeMX 安装 STM32CubeIDE, Keil安装 ST-Link驱动安装 微信公众号 ...
- Matlab/Simulink自动生成C代码实验
目录 0. 概要 1. Matlab /Simulink/Embedded Coder关系与区别 2. 搭建Simulink模型及仿真 2.1 搭建模型 2.2 仿真 3. 生成代码 3.1 求解器设 ...
- Flayway mysql自动生成版本_Flyway详解及Springboot集成Flyway的详细教程
Flayway是一款数据库版本控制管理工具,,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里:不仅支持Command Line和java api ,也支持Bu ...
- EZDML生成Erupt代码详解
Erupt是一个基于Spring boot注解的java框架,只需要写个实体类就能自动生成增删改查的基本功能,又可以自定义代码实现复杂逻辑,设计精巧功能强大得来又很灵活.我在生成Erupt过程中有时会 ...
- java crud生成_Spring Data CRUD的生成和代码详解
今天介绍一些JHipster生成简单的CRUD代码,完成一个One-to-Many(一对多)关系的增删改查. CRUD是Create.Read.Update.Delete的缩写,就是增删改查.CRUD ...
- stm32代码_MATLAB(STM32MATTARGET) 自动生成STM32工程代码
利用MATLAB的SIMULINK自动生成STM32工程代码,本课程介绍如何利用MATLAB,STM32-MAT,STM32CUBE 如何在SIMLINK中仿真并且生成工程代码,本课程将以SPWM波的 ...
- 【初篇】DHT11连接STM32、One wire单总线原理、GPIO代码详解
目录 一.DHT11单总线原理 二.代码详解 三.代码 代码见文章末尾 一.DHT11单总线原理 DHT11温湿度传感器只需要一根线即可和MCU进行数据交换,无数据传输时,单线应为高电平状态,具体流程 ...
- 《STM32从零开始学习历程》——CAN通讯代码详解
<STM32从零开始学习历程>@EnzoReventon CAN通讯代码详解 相关链接: <STM32从零开始学习历程>--CAN通讯协议物理层 CAN-bus规范 V2.0版 ...
- 基于RK3399ESP8285自动售货柜项目—MP08开发板端代码详解
基于RK3399&ESP8285自动售货柜项目-②MP08开发板端代码详解 本系列文章将详细讲解该基于RK3399及ESP8285自动售货柜的完整实现方法,从硬件连接到网络通信再到软件实现,本 ...
最新文章
- 巧用Excel 2010数据透视表制作销售报表
- 如何监控impala的数据_CDH秘籍(两):cloudera Manager存储监控数据
- opencv 图像访问索引
- Java-虚拟机-堆的内存规划/新生代/老年代/卡表
- python 类和对象 有必要学吗_Python学习——对类和对象的初步理解,初识,与
- 软件需求规格说明书_4.软件需求最佳实践笔记 | 软件需求与需求工程
- 2020年的19种最佳React Native App模板(包括5种免费)
- 异步编程之 Isolate
- 银河麒麟V10(Kylin Linux V10)之DBeaver安装
- 电话交换机--程控交换机
- 异步四位二进制计数器逻辑图
- 目标管理是项目管理的核心思想之
- Javascript 16进制转有符号的10进制整数
- WebAssembly WASM 是什么
- win10一直正在检查更新_IT之家安卓/iOS版 7.15 更新:手机短信快捷登录/海外用户支持...
- 教你认识水货手机翻新手机14天机的鉴别和选购
- 虹科案例 | 用AR进行建筑规划,这家公司竟已“走近”了元宇宙?
- Java Eclipse如何调试代码
- 计算机网络流量控制名词解释,计算机网络-名词解释
- GPT3.5 promt的两个编写原则之一 编写具体、清晰的指令
热门文章
- 奥飞数据拟推5000万元员工持股计划
- h5页面转png图片_HTML、H5、web转图片image的几种方法总结
- 常用文件IO函数 -open/close
- 设置响应对象的编码格式
- 全球与中国锂分子筛市场现状及未来发展趋势
- 如何使用GitHub下载代码
- EETI_eGTouch驱动移植及校准
- 6N60-ASEMI的MOS管6N60
- oracle exfsys 下 rlm$evtcleanup,记一次数据库无法增删改趋于HANG住状态的故障诊断和处理 -电脑资料...
- 数据结构——第一章 绪论习题