概述
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选择我们所使用的芯片型号
我们直接在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灯闪烁代码(保姆级教程)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复