找回密码
 注册
关于网站域名变更的通知
查看: 1729|回复: 5
打印 上一主题 下一主题

一步一步教你使用simulink配合STM32CUBEMX

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-5 13:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 4 z9 U# w8 X" b6 O
/ N' N: o9 G6 ?) o$ W3 Y
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
/ ^1 p& q9 y0 X! b6 B
5 h2 C: }: U# s* Q1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库 % Q6 s# Q) b/ w$ a2 L& t

' C% `7 O/ m) B7 C2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建
9 `5 [& o1 q: ~" N9 y0 q, r5 E- D) X% @9 f6 {
2.1 将PB0 设置为输出+ b. c# U/ E+ s1 A) w. J

" \) ~5 r: u0 w, S4 X) ? 5 r9 J* c7 r5 h

. a( r' k$ R' y6 N
8 o, Q% N  ]" \1 U0 A; G: I' r2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好7 ?, |4 K/ j- w5 \0 r
4 T5 E' H) m" D- l

2 f& u6 q4 l' x( ?) q2 |8 S  B, M) _. R( u
2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys4 y: S4 }: F/ U* l7 W

. Y1 M$ o/ c6 Q
/ U$ Q8 N+ B3 Z' V3 g, S! n7 u  w9 p7 |0 U
2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)- F9 d/ X, y3 u2 S
$ f1 S! w& n& B  U+ j0 k' C
: s7 Y: _3 `" x( t$ N

1 c( g: E6 c$ I: t( H2.5 引脚分布查看(usart可以先不管)' }( q* v- q3 a# ~3 {& |, G
# a1 g$ b! x# n6 t* f

& f! A7 G7 T0 N* T- H8 Q2 T  b3 |! J+ J3 U
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考 . g4 l; I& ]: |6 W/ G3 H- S
; X: |) h. K1 Y' ^
+ V& g' R* [8 ~+ `% |6 u' z
, m" ~1 @2 k1 O5 R. n
0 u- q, i0 j' C, e1 X  L! A- y6 d
" }4 K' u/ u7 F
2.7 GPIO配置* t& T2 j2 c# C: r. I  f, G
9 w% {7 S- s  N, h7 z6 d1 i
1 [& @) A/ B( V: k' G

7 Y" O" T4 ~3 ?8 Z 7 X2 ]4 }& u2 Q' S  z
/ y' S0 E- Z9 d% d5 f+ D
配置结果见下图
  K/ q1 q! C/ W, }& ~- G0 R1 S, h. i) }* r) e: |5 y  H; H

, o' i- D6 r6 ^+ D6 T6 F8 J. E1 ^: |
2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)
* g# {* \7 A$ H  R5 j/ e. F0 H6 W0 F; F+ a
, h, J3 O3 |1 s* ]5 Y" d

( G; q0 G9 W& |* ~1 G3 下面进行simulink部分的设置 $ l* }+ j$ X- m" }

! n8 r' {! N+ ]/ D$ Z2 W( ~% v首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
8 [/ s: i: \8 I. X0 h" D* C. o& A9 i3 s8 z4 H$ i3 q4 i3 i
切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!7 k( K0 ]& g1 L
; |* r4 Z- A- j& ~7 {

: ~9 D, _, h: h" i
; K' O0 D2 Z4 T  e- h) {$ ?9 Q  u3.1首先进行前期配置工作 此处要细心一步一步来& E. z! F- B$ T, H' r" l
0 p, a  I$ e' b# r, u- x& m, g
打开设置 按照图片顺序操作+ w1 ^; A3 t7 G2 W9 ^
: G0 S; T# Z) c7 s) w$ ~

$ M5 C- U. q6 c) ~
/ |9 l/ `% Y# F( l7 b" }, T
5 Y* G- }- R  p' c' ?" }! F0 S& o6 \: L2 O0 n2 Q* ]5 g
& V* l* e1 `& r

, j7 _0 h0 K; A$ ?, N( H + B5 Y5 U/ g/ `1 y. D* ^7 c
6 g8 ~! X: C2 K  c4 b3 k& _& H

% L1 G/ [. K" N3 c; S3 J* F
8 X7 c( _3 ~6 I. h* K! ?' H然后ok保存  每一步都很关键  不要遗漏   ; A% @, S; P2 v6 z/ n

: }, z: v+ m: |* N2 U3.2打开simulink 选择 stm32 adapter
' t# O0 S- a/ \% L5 l/ D9 F6 o, p9 R9 k2 `1 e# j% T5 P
4 P$ w6 \, x5 v5 k$ B0 H6 R

: q1 h, E; h1 f9 L; e4 N7 \选择config模块 见下图5 A" y/ [6 ?' F. t$ B! i
/ q$ q( a$ ]: e# e1 t, X. }6 I
1 _3 W7 \  s6 a: ]/ {6 \! d
7 J. T4 @; C% i
将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图
" B/ W3 ^9 S0 [1 g/ h$ X  h
, |/ E" X" w* i6 X" k 4 Z5 k; a+ N' X/ [3 I) u: Z5 R

9 @  C0 I4 `+ ]) i
# D' ]% d7 u. G4 t4 ]! o- X$ g) X* ?4 D' u/ u$ X- Z3 z# I
然后ok就好了
3 m3 O! ?; V/ d* k8 q  Y$ G
/ B2 U) s4 Z, C; s& Y( ]3.3 添加GPIO
  {* ^3 ?% @2 y$ v
! W# y- @, ^1 P7 W  i! B9 s * |6 R9 Z% S; j' E# v5 h

9 |" f+ V& I: Z" \1 k5 W将此引脚write模块拖到model中 因为是输出引脚 这里是写操作
8 O0 X1 Q+ \/ o9 o  Q9 E2 {) \/ n5 E) E6 o4 f) D
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)
( \, Z/ k) k2 \7 u
! ^2 A/ G- i: k' w % a0 A( ]9 j, a% b! J
! @0 @8 g, I4 H# H( l
3.4 最后添加一个脉冲源 配置如下
5 e% n0 a. c1 k0 F& l5 q( U
5 h! V9 U( F% F  I+ w
- d2 {0 q. S1 V  ?! @
/ O0 ^, `& P1 ?: n1 H' x* L( O最后的图很简单 如下图
) E- U3 A# f2 N% M  Q4 F1 y, o4 J7 {: v  ?! j: u

% A0 w& r0 f5 C' Q0 B
/ O0 r6 i/ z. `7 ^下面就可以生成代码了  
4 `% |/ ~6 k% j2 d" V( D8 g- S
4 生成代码
. d& ~2 L% m$ \2 k3 J4 L" h  @/ K1 C( n* _2 ]) x, u
4.1 点击code-->C/C++ code--> build model9 N8 W6 Y/ W3 [/ ~

5 e. d$ y1 T0 f7 s0 E( l 9 f5 |$ s& C! o$ u
8 N# F, z' Z9 M6 @! x* y' s- V
然后 出现了 report
( A2 v2 \* ~' `4 X  b# Q+ S0 D3 {* k* m- \+ z; |- P4 t

9 Y$ S9 L5 w! Y2 X: d* X( ~# f2 X
下面 我们就可以回到stm32cubemx中进行程序的生成了5 B: b' q7 I2 G
; W$ z% M6 Y$ G/ c' @7 G8 q* a/ C& O
4.2 在stm32cubemx中 点击 生成keil项目文件. N; i7 P2 I9 Y+ X# q- L0 m

" c+ C+ A& O7 D: o8 j/ w
5 O2 f1 ?4 S! d9 [% @' b4 k- Q9 F! c1 J/ h* R/ s$ L
然后  直接打开 project + E. Z1 F$ D, ~; u9 \! s

5 L. @# O8 M8 ?9 P- l首次编译  大家可能会遇到一个错误
. a# W1 y9 ]7 j- \0 |, ~
/ H8 ]0 |9 |9 p8 @, `
0 l$ x; K2 s* I) R8 r0 I0 T. d( h8 W+ k5 j0 q, a
我们找到位置 将其注释掉 我们并没有用到它$ k1 F$ g% y0 }; J$ o/ j
7 ]0 F2 s7 m$ @5 J

* S! g! P) x0 h3 g# p  Y+ @' t7 f& V: X% u3 w+ f6 `
然后就没有问题了
. W, u  c" H" }& K$ U3 m. s9 l. ]
接着便可以下载程序到我们的板子看灯的闪烁 效果见下图
5 F- `  b- A' p; ?
9 I# r4 {- K+ F. p1 z
游客,如果您要查看本帖隐藏内容请回复

2 l( z7 `8 h. ]# i6 E2 C2 i4 V  S然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!
3 M/ o+ [$ f9 ~, c  `" s( l( q
' E3 q& c+ A' h# C  ?% i$ C

该用户从未签到

2#
发表于 2020-3-5 17:22 | 只看该作者
这篇我要收藏,后面用的时候再细细读

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享
+ x5 n  p; {: V& A8 [$ k$ s4 v& ]: I8 @

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO
" ~: F$ }' o4 r( N- _. f
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享) n+ L* T: _  k+ ^
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

    6#
    发表于 2021-2-20 10:06 | 只看该作者
    感谢大佬分享:
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-31 14:52 , Processed in 0.171875 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表