Simulink结合CubeMX开发STM32,无需写代码,解放双手!

时间:2024-03-19 13:10:26

#Simulink结合CubeMX开发STM32
##无需写代码,解放双手!

最近发现ST有一个Simulink的库,可以直接在Simulink中配置需要的功能,而底层在CubeMX中直接配置就可以。

对于嵌入式开发的朋友来说,CubeMX应该都不陌生,它解决了繁琐的底层配置过程,虽说我已经感觉省了很多麻烦,但还是会因为功能代码复杂的逻辑和编写过程头疼半天,或者因为某个不知道的函数而百度半天。发现了Simulink的这个作用之后,我简直惊呆了,这对我来说无疑是一个宝藏,于是赶紧开始学习尝试,接下来把整个教程分享给大家,感兴趣的一起来看。

首先我们需要去ST官网下载Simulink相应的库。
下载地址:
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-utilities/stm32-mat-target.html
Simulink结合CubeMX开发STM32,无需写代码,解放双手!直接点击“Get Software”就可以进行下载,在ST官网下载需要注册登陆账号,嫌麻烦的朋友也可以直接去公众号找我要。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!下载之后的文件如图,我们先打开Readme来看一看。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!直接翻到这里,告诉了我们导入库的方法。

先在MATLAB的命令行中输入 “ pathtool ”,然后选择刚下载的文件夹导入,点击保存。

然后我们在MATLAB中打开Simulink,新建一个空白模型。
然后点击设置按钮
Simulink结合CubeMX开发STM32,无需写代码,解放双手!在这里我们需要对生成的代码进行一些设置。

先打开“ Solver ”,将步长改为1/10000.
Simulink结合CubeMX开发STM32,无需写代码,解放双手!

点击“ Code Generation ”,

Simulink结合CubeMX开发STM32,无需写代码,解放双手!点击“ Browse ”
Simulink结合CubeMX开发STM32,无需写代码,解放双手!选择“ stm32.tlc ”,点击OK。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!在“ Code Generation ”的下拉栏中打开“ STM32 Options ”,勾选“ STM32CubeMx Path update ”,并且点击自动更新路径按钮“

Update installed path” ,点击OK。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!
这样前期设置工作就已经完成了,接下来先打开CubeMX进行配置。
我这里用的是F1的芯片,虽然官网说只支持F4,但我看着所有应该都支持。

这里想要PC8三秒转换一次高低电平,PD2两秒转换一次高低电平,我们把这两个引脚都设置为输出模式,“GPIO_Output ”

Simulink结合CubeMX开发STM32,无需写代码,解放双手!
这里设置时钟
Simulink结合CubeMX开发STM32,无需写代码,解放双手!
使用外部定时器,这里我用的是TIM1.
Simulink结合CubeMX开发STM32,无需写代码,解放双手!
设置好之后点击生成代码。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!Simulink结合CubeMX开发STM32,无需写代码,解放双手!完毕之后先不要打开,点击“ Close ”.

这样CubeMX的配置就全部完毕了,我们关掉它再回到Simulink。

打开元件库,会发现有一个STM32的库
Simulink结合CubeMX开发STM32,无需写代码,解放双手!点击MUC CONFIG,拖动一个到模型中。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!
双击进行设置。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!点击“ Select STM32 configuration file ”按钮,选择刚才CubeMX中配置好保存的ioc文件。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!点击OK
Simulink结合CubeMX开发STM32,无需写代码,解放双手!接下来在库中点击GPIO,拖动一个“ GPIO _Write”到模型中。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!
Simulink结合CubeMX开发STM32,无需写代码,解放双手!再复制一个,分别双击进行设置。
分别勾选PC8和PD2,点击OK。如果几个引脚同为一个GPIO,就可以在一个模块中进行设置。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!Simulink结合CubeMX开发STM32,无需写代码,解放双手!
Simulink结合CubeMX开发STM32,无需写代码,解放双手!

接下来在库中拖动一个矩形波模块,如图进行连接。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!接下来设置矩形波参数,一个周期为6,一个周期为4.
Simulink结合CubeMX开发STM32,无需写代码,解放双手!

之后我们可以先打开示波器看一下两个引脚进来的波形。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!

示波器显示波形如下。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!符合我们的需求。
接下来我们就可以生成代码了,之前记得先把示波器去掉。
直接点击“ Build Mode”按钮。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!
完成之后我们直接打开代码。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!

我们打开生成的C文件,将生成的功能函数复制到main.c中mian函数的while中,只有一个函数。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!
最后编译一下。
Simulink结合CubeMX开发STM32,无需写代码,解放双手!我们将代码Debug一下,查看两个引脚输出的信号。

Simulink结合CubeMX开发STM32,无需写代码,解放双手!和我们预想的一致,大功告成!大家也可以自己下载到板卡中观察。

从这一个小小的例子中不难发现,将Simulink和CubeMX两个工具结合起来使用无疑减轻了我们很多的工作量,也不需要去思考令人头疼的代码逻辑,利用框图的形式来配置代码,也可以使整个功能逻辑变得清晰起来,而不需要盯着一堆代码去调试,可以说非常方便了!

在官方文档中也有其他模块的使用方法,大家感兴趣的可以自己去看看。

##以上就是本节的全部内容,后续内容会逐渐上传,相关源码也会统一上传,也可以到公众号私聊我要。

##不足之处请及时指出,相互学习
##不懂得小伙伴可以到我的公众号"歌者X"私信我,看到后会回复的,欢迎交流学习!
下面是我的公众号
Simulink结合CubeMX开发STM32,无需写代码,解放双手!