1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于STM32CubeMX和HAL的嵌入式系统编程通过图形化配置和自动生成初始化C代码的方式,大大降低了嵌入式系统应用程序开发的工作量。
偶尔看见刘杰老师的基于模型的设计和嵌入式系统实现,被只需要搭建模型就可以生成可以下载到嵌入式系统运行的代码的描述强烈吸引,几经波折,在几天的折腾后实现,终于实现了。避免忘记,避免重复踩坑,写本文档以记录之。 一、整体思路 先利用STM32CubeMX进行图形化配置,再用Matlab的simulink搭建模型进行仿真无错后生成部分C代码,再以STM32CubeMX生成工程,最后在KEIL或者IAR等工具中编译生成目标代码下载至MCU中执行。 本文以流水灯的功能实现为范例进行演示。 二、开发环境 只表明实现本范例时所使用的各软件,各自的安装过程不再详述。 1.Matlab2018a 2.STM32-MAT4.4.2(最新版本大概是5.6,与matlab2018a的版本不匹配) 3.STM32CubeMX5.5 4.MDK-ARM V5.29 三.用STM32CubeMX建立ioc工程 完成图形化STM32硬件资源配置,生成STM32CubeMX工程文件ioc。 开发板MCU为STM32F407VET6,用JLINK下载调试,HSE外接8M晶振,4个LED分别接PE0-PE3,低电平亮。 硬件资源配置过程见本文另一篇博文,完全相同。 配置完成后仅生成LED.ioc。 重要的事情说三遍:仅生成LED.ioc,不生成代码!不生成代码!不生成代码! 四.用simulink建立模型 1、将将STM32-MAT的安装路径添加进MATLAB搜索路径 打开MATLAB,配置MATLAB搜索路径,“添加并包含子文件夹…”。 2.建立simulink模型 (1)将IOC工程所在路径设置为matlab的当前工作路径 (2)打开simulink,生成一个空白模型命名为ledmat.slx,与LED.ioc保存在同一个文件夹中 (3)进行模型参数配置 第一步:code generation配置如下 这一步只是选择了browser,找到了stm32.tlc,其他都是默认值。 第二步,配置STM32 Options 这一步,只需要将三个复选框都选上,其他自动填充。 第三步,配置solver 配置如图。 (4)模型搭建 第一步,配置MCU 找到MCU CONFIG,拖拽或发送至空白模型文件ledmat.slx 双击图标,打开参数配置窗口,浏览找到LED.IOC,OK保存。 MCU的型号出现在MCU CONFIG模块上。 第二步,将GPIO-WRITE模块拖放至模型文件,双击,在出现的配置窗口中将四个引脚的复选框选中。 确认后的效果: 第三步,调用阶梯信号经运算生成流水灯的驱动信号 计数器阶梯信号源双击图标出现参数配置窗口,2位,表示2^2=4个阶梯,取值为0~3.采样时间0.25是每个阶梯的持续时间为0.25s,即四阶梯周期为1秒。 完成模型如图: 其中,分别与4个const相比较,相同则输出1,不同输出0,做为各个引脚的驱动电平。 加入scope,仿真run,得到的仿真运行波形如下 说明模型正确。 (5)build model,生成部分代码 七。感受 第一次做,步骤繁琐,但是路径走通后再实现起其他功能,就轻松了。也据说,复杂系统功能的实现依赖于模型设计的话,更便捷更高效。 此方法对于片上资源的调用应该是有效的,计划逐一尝试。可调配排上资源列表: 中间的坑,是出错也没有直接的指示,多看多比较发现解决方法。 依赖软件比较多,matlab/simulink+stmcubemx+mdkarm。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 16:24 , Processed in 0.871363 second(s), Total 75, Slave 59 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号