用过stm32单片机的朋友应该知道,如果对于一个新手来说,配置一个stm32的开发环境就的花上好长时间  而且开发过程中很多时候我们的代码都是在配置端口 像最简单的GPIO的配置  也需要定义结构体 如果C语言不过关的新手 学起来会更加的困难  

    后来st公司开发了stm32cubemx这个软件来帮助我们完成这些端口的初始化配置  我们可以通过图新界面 配置选择的每一个端口的作用 之后便可以生成对应的工程文件  为我们节省了很多的时间  但是之后的代码还需要自己手动书写找错   我们把实际用途转化为代码还是需要一定的时间 学过simulink的朋友 应该知道它具有非常强大的自动代码生成功能  结合上面这些 本次我用simulink和stm32cubemx结合keil5来开发stm单片机 本次我选择了st官方的stm32f429discovery 开发板来简单的控制板上的两个led灯 具体过程如下  用到的软件如下

使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32

链接:http://pan.baidu.com/s/1dFITUtN 密码:tt47

首先打开stm32cubemx   新建工程 选择正确的cpu型号 之后双击确定 选择正确的端口 之后对端口进行配置(板上为PG13和PG14均设置为Output)并都设置为上拉  之后project  ->generate code->选择合适的路径(尽量不包括空格和中文)选择合适的工程名->Toolchain选择MDK-ARM V5确定即可


使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32




使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32



使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32



使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32


  之后打开MATLAB进行stm32mat_target的安装   并把安装路径包含到matlab的搜索路径之下   之后打开simulink新建model  点击library 刷新一下 会看见下边出现了Target  support package 的库表示安装成功 之后我们便可以 开始用simulink开发 stm32(有没有很激动使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32) 不过先不要急我们打开参数设置  在code generation 将右边的system target file 设置为stm32.tcl 之后点击stm32 options勾选stm32cubemx path update 之后点击update installed path 稍等 simulink会自动搜索stm32cubemx的安装路径并加入

最终结果如下

使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32


使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32


现在我们就完成了参数的配置之后便可以构建模型了  在library刚安装的package中选MCU CONFIG将右侧的模块拖入model  双击之后点击select stm32 configuration file

选择刚才stm32cubemx配置好的输入文件之后确定  将package中的GPIO write模块拖入model 双击之后选择GPIO13,再拖一个选择GPIO14  之后在sources中选择pulse generator 双击设置方波的频率和占空比 为每一个GPIO write加一个 最终结果如下


使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32


使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32

至此我们的模型搭建完成 生成代码之前 我们现将MATLAB的工作路径设到刚才stm32cubemx生成的工程文件夹下 点击build model 之后就会自动生成工程文件 (可能会比较慢),对于首次生成的 可能会不成功 需要先点击code->c/c++ code->Embedeed   之后一路next最后会生成c代码但是还需将c文件手动移植  还是比较麻烦 所以建议首次生成代码之后再点击build model  sinulink会自动将文件加入工程文件 并特欢main.c文件 即可一次性生成工程代码 最后便生成了keil MDK5可以打开的文件 (需要先安装MDK5并安装f4对应的库文件 相应的安装包见上述百度网盘)最后点 open project便打开了keil5的工程   如果现在全部编译可能会有问题   由于生成的代码中未定义RT_MODEL_myfirst这个变量 所以我们将main.c文件中的extern RT_MODEL_myfirst *const myfirst_M;这一句注释之后 全部编译之后便可通过编译  最后点击load通过st-link将生成的文件下载到stm32f4中(如果未安装stlink驱动 需要先安装驱动 )最终下载的效果如下  最终开发板复位一下 可以看到板子上的两个LED开始闪烁 视频见链接(使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32有没有很开心)


经过测试该方法同样适用于stm32f1系列 由于本人板子种类有限 其他stm32系列 未加测试 欢迎大家测试

使用MATLAB&simulink&stm32mat_target&stm32cubemx开发stm32



相关文章: