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灯闪烁代码(保姆级教程)相关推荐

  1. 使用STM32CubeMX新建小熊派的STM32L431RCT6工程实现LED灯闪烁

    目录 作者介绍 工程生成步骤 双击打开软件 新建一个工程 芯片选型 配置GPIO 配置系统时钟 设置目录.工程名.编辑使用的IDE等 生成工程 打开工程 打开工程的小插曲:STM32 Keil新建工程 ...

  2. STM32使用GPIO_WriteBit()函数使LED灯闪烁

    文章目录 模仿四种方法点灯的示例程序,在工程模板上进行编写 分析LED_Init初始化函数 分析GPIO_WriteBit函数 杨桃32学习笔记,本文图片文字皆为转述 模仿四种方法点灯的示例程序,在工 ...

  3. 【QT】QT生成.exe安装包详细全文(保姆级教程)--打包软件及问题大全

    缺少.dll文件的朋友,请跳转到我的另一篇文章"QT编译后的.exe文件运行时缺少一些.dll文件的解决办法[超详细教程,新手必备]",把问题解决再往下看. 一.前言: 最近,一个 ...

  4. STM32使用另外两种方法使LED灯闪烁

    文章目录 GPIO_SetBits/GPIO_ResetBits函数介绍 第二种led闪烁语句 GPIO_Write函数介绍 第三种led闪烁语句 杨桃32学习笔记,本文图片文字皆为转述 GPIO_S ...

  5. 根据Word表格自动生成SQL数据库脚本的VBScript代码

    这是几年前写的根据Word表格自动生成SQL数据库脚本的VBScript代码,最近修改了下(原来只支持单个Word表格)使其支持一个Word文档中的多个表格,生成的SQL文件名以Word文件名+.SQ ...

  6. CREO:CREO软件之工程图【表】之一明细表、表格创建、创建BOM球标、自动生成零件报表的简介及其使用方法(图文教程)之详细攻略

    CREO:CREO软件之工程图[表]之一明细表.表格创建.创建BOM球标.自动生成零件报表的简介及其使用方法(图文教程)之详细攻略 目录

  7. STM32定时器控制LED灯闪烁及PWM练习

    一.STM32定时器控制LED灯闪烁 1.相关配置 1)配置RCC和SYS 2)配置IO 配置PC15,并命名为D1. 3)配置定时器 选定时器2,配置Clock Source为Internal Cl ...

  8. 嵌入式作业STM32定时器实现串口通信及LED灯闪烁

    目录 前言 一.什么是定时器 1.定时器与计数器 2. 定时器有什么用 3. 定时器的原理 4.时钟产生器和时基单元 二.用STM32CubeMx创建项目 1. 创建项目 2.配置RCC和SYS 3. ...

  9. STM32学习 3:GPIO管脚配置与第一个STM32实验:LED灯闪烁

    STM32学习 3:GPIO管脚配置与第一个STM32实验:LED灯闪烁 1,GPIO管脚简介与配置 1.1GPIO框图 1.2GPIO不同模式 1.3 GPIO寄存器 1.4 GPIO库函数配置 2 ...

最新文章

  1. linux常见面试题
  2. matlab的讲稿ppt,Matlab初步(讲稿200508)之四
  3. turtle python tkinter_【案例】 什么?idle 中竟然有内置 turtle 样例?(paint)
  4. Arrays.asList 使用细节
  5. 【 .NET Core 3.0 】框架之二 || 后端项目搭建
  6. C#中谁最快:结构还是类?
  7. NGINX下配置CACHE-CONTROL
  8. elementui 嵌套表单验证_elementUI 表单嵌套表格验证,日期选择器联动限制等写法
  9. java中double除法和取余的若干注意
  10. java 基本语法 二_java基础语法2
  11. Impala和Inceptor的区别
  12. 信号与系统【奥本海目】第二版笔记
  13. 美容院管理系统哪家好?医美管理软件哪家好?
  14. 一步一步实现STM32-FOTA系列教程之BIN文件解包C语言实现
  15. 类人猿易语言云控系统开发 + 附加安卓模拟器中控+ 内存操控 系列课程
  16. 从语言之争到年龄焦虑
  17. DNS-over-HTTPS(DoH)简析与配置
  18. 问题:谷歌浏览器(Chrome)无法访问网站ERR_CONNECTION_REFUSED
  19. c语言2逻辑与2是1吗,2.C语言逻辑运算符和表达式
  20. 【分享】基于单片机嵌入式的家用智能节水淋浴控制器的设计-基于单片机的电子贺卡控制系统设计-基于单片机的倒计时牌控制系统设计-基于单片机的彩灯控制器系统设计-多模式彩灯-单片机的八路路数字电压表控制设计

热门文章

  1. 【转】区块链:传统合同和智能合约
  2. 如何在Windows自带的邮件中关联自己的163网易邮箱
  3. 内网穿透frpc ,frps的使用
  4. mysql数据仓库搭建_搭建数据仓库的流程简介
  5. win10下基于yolo5s的安全帽检测
  6. 智慧工厂人员定位系统源码,实现对工厂内的人车、物、料等的精确定位
  7. 【图像处理算法】Canny边缘检测
  8. QQ第三方登录的过程
  9. 【手把手教你树莓派3 (三)】scp命令传文件
  10. 网络最重要的学习工具--网络模拟器GNS3、EVE-NG