我是靠谱客的博主 俊秀指甲油,最近开发中收集的这篇文章主要介绍利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.简介

这里利用基于STM32F103RCT6的一块自带led灯的开发板,首先通过STM32CUBEMX产生.ioc配置文件,其次对Simulink进行所必须的配置,然后利用Simulink的图形化界面实现简单的使led灯闪烁的逻辑框图,接着就是自动生成代码(生成keil工程文件),最后将代码烧录至芯片中便可实现led灯的闪烁。

注:

利用sumulink联合STM32CUBEMX开发stm32对软件版本要求很高,不适配的软件版本可能无法实现功能。
此文章使用的软件版本为:
MATLAB2018a、STM32CUBEMX6.3、STM32-MAT/TARGET4.4.2,该软件版本组合经实验无法实现正常功能。
这里给出几种版本匹配,经试验和网络总结,是能够正常生成代码的。
1、MATLAB2018a、STM32CUBEMX4.2.6、STM32-MAT/TARGET4.4.2
2、MATLAB2017a、STM32CUBEMX4.2.7、STM32-MAT/TARGET4.4.2
3、MATLAB2020a、STM32CUBEMX5.3.0、STM32-MAT/TARGET5.6.0
4、MATLAB2018b、STM32CUBEMX5.6.0、STM32-MAT/TARGET5.6.0
5、MATLAB2020b、STM32CUBEMX5.6.0、STM32-MAT/TARGET5.6.0
其中第四种软件版本组合是官方推荐的软件适配版本
STM32-MAT/TARGET官方下载连接
STM32CUBEMX官方下载连接

1.1 Simulink

Simulink想必大家已经再也熟悉不过了,Simulink是美国Mathworks公司推出的MATLAB中的一种可视化仿真工具。Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。Simulink与MATLAB相集成,能够在Simulink 中将MATLAB算法融入模型,还能将仿真结果导出至 MATLAB 做进一步分析。Simulink应用领域包括汽车、航空、工业自动化、大型建模、复杂逻辑、物理逻辑,信号处理等方面。

1.2 STM32CUBEMX

STM32CUBEMX是一个图形工具,可以通过一个循序渐进的过程非常轻松地配置 STM32 微控制器和微处理器,以及为 Arm Cortex-M 内核或部分 Linux 设备树生成相应的初始化 C 代码以用于 Arm® Cortex®-A 一个核心。说白了就是我们可以通过STM32CUBEMX以图形化的方式对STM32芯片进行配置,并生成相应的初始化代码。

1.3 STM32-MAT/TARGET

STM32-MAT/TARGET是Simulink中的硬件库,通过Simulink对STM32-MAT/TARGET硬件库的使用,我们可以实现一定逻辑的框图,以供Simulink的代码自动生成工具生成代码。

2.实现方案

2.1 利用STM32CUBEMX生成.ioc配置文件

我们通过access to mcu selector选择我们所使用的芯片型号
STM32CUBEMX首页
我们直接在Part Number输入STM32F103RC便可在右下角看到我们所需要的芯片型号
在这里插入图片描述
双击我们所需要的芯片型号
在这里插入图片描述
这时便可开始对芯片功能进行初始化配置,由于本开发板的led灯为PA8引脚控制使能的,所以首先将PA8引脚设置为GPIO_Output
在这里插入图片描述
接着配置时钟引脚RCC,高速时钟选择外部晶振即Crystall/Ceramic Resonator,如下图所示
在这里插入图片描述
由于我们使用的下载器为j-link,所以还要配置SYS,将Debug配置为串行线,即Serial Wire,如下图所示
在这里插入图片描述
配置完如下图所示
在这里插入图片描述
接下来对时钟系统进行配置,如下图红色方框所示
在这里插入图片描述
然后就是对工程文件的基本配置,这边将工程名设为light,工程位置设置在事先在桌面上建立好的light文件夹中,应用结构选择Basic,集成编译环境(IDE)选择MDK-ARM
在这里插入图片描述
然后点击File,将工程进行保存
在这里插入图片描述
这样我们就可以在light文件夹中找到如下配置文件
在这里插入图片描述
接下来进入matlab界面中,将light文件夹及其子文件夹添加到工作路径
在这里插入图片描述
然后打开simulink,创建一个新的空白模型,命名为ledflash,我们将其存储在与配置文件相同的文件夹中
接着还需要对该模型进行配置
点击方框所示按键,弹出对话框
在这里插入图片描述
按照如下步骤进行配置
在这里插入图片描述
利用simulink开发stm32所设置的采样频率在所生成代码中的体现
在这里插入图片描述
在这里插入图片描述
接下来就可以通过sumulink的图形化界面进行编程了
首先,从library browser的stm32硬件库中取出STM32_Config模块
在这里插入图片描述
然后双击该模块,选择我们使用stm32cubeMX所生成的配置文件
在这里插入图片描述
接着,再从library browser的stm32硬件库中取出GPIO_Write模块和从Sources库中取出Pulse Generator模块
在这里插入图片描述
在这里插入图片描述
进行下图所示配置和连接
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
然后点击Build Model,便可以在目标路径中生成keil 工程文件。
在这里插入图片描述
打开keil工程文件、编译、下载,在使用正确软件版本的前提下就可以实现led闪烁功能,所以要注意,一定要使用要求版本的软件。
可行的版本软件列在文章开头。
无法正常生成代码解决方案参考文章

最后

以上就是俊秀指甲油为你收集整理的利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程)的全部内容,希望文章能够帮你解决利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部