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

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

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


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

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














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

最终结果如下





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

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





至此我们的模型搭建完成 生成代码之前 我们现将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开始闪烁 视频见链接(大笑有没有很开心)


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