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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 3 @- P$ v8 q/ k( e, y+ }1 E8 J- m/ N

8 B+ C: q" s& b9 B' G2 v8 u. T本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
  W- T# J1 s" ]+ |- ]/ f' g  L' b5 h" P; h7 d/ U% n( _8 |5 @
1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库
/ a! U2 z" |1 Y3 O5 @! t
+ @! J! z2 P9 |3 O$ P: X2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建
% a" u) I5 t' V( |. |) l& C& c/ z5 p9 j) x8 Q+ X
2.1 将PB0 设置为输出
9 h* e9 t4 V1 ~) O4 n5 Q
) d. A3 s# u  c/ V. ?- { . J) D& ~% C2 M5 j3 I* x! G6 Z
; p/ w7 Z8 r  X2 X3 K( ?

0 `, B; c6 k! c. @, B2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好
/ {' V, R; ~6 e6 W0 Q+ r2 q6 y% y4 ]+ p0 Q

) v  \; w' z' r6 A) E! o
7 F" q, y& |) u2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys' O$ @- f- i/ T8 |8 w3 Z
% O6 Y! Q! ~' V3 T8 E: e4 }9 B4 o

- k7 p  z1 R  g/ h& X7 C% o% y& i, w4 i0 o( l. ?% y
2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)  n. z2 G( I0 C" |
6 S* h- H+ Y: h% N! d4 c' E7 e

' v8 u; Q& r* C  m3 a
  J# J" O8 Y4 H: W& b2.5 引脚分布查看(usart可以先不管)
* l& B. b/ Z5 {; @% b& \% R6 X1 B5 o, d" u5 f

7 m7 D) x' @1 k% O- r+ x- @* h. E5 o2 y( S( ?
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考
9 p" J& S1 l; x
7 J4 B+ [; R( o4 O6 u ; L: a% G1 T( r: {9 G- P$ K4 Q* `3 G, t

  \/ v4 x' w  s8 n- I
) j3 R( N$ {6 A& L
5 \& V2 [" m  d3 R4 n# r  i2.7 GPIO配置6 z! O# P# z& J" c) I: Y; a7 K# H- W
5 K, ?" u: r" @( x  D+ X# [+ M
/ A" j+ z. Z- L0 C- A

# m, e4 g0 F+ z# Q$ N4 Z
7 I: o! l' R4 F4 {) E5 |! y3 a" D7 {( {' o. {5 I* T2 ~/ f/ ^  o
配置结果见下图1 s1 U8 V- O+ ?& `' O
  V! l9 v& w: i

, G: g+ v0 B& _4 ?3 Q9 ]& g9 }
2 K1 E* g& L" j* j& Y5 f! M2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)
$ ?& n: g' H! C
: {9 }0 J/ A* O. k- d! }0 C& [" F
. E0 ?# k$ m7 n. ]# f! Z' A$ S% A1 ~. x7 B- R* {% U- e
3 下面进行simulink部分的设置
8 }8 [% n" C; }
/ }: h! H& c$ t0 w首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
9 x4 n2 T7 I+ c6 D) x, M9 ^; O  Q% R; V+ [/ F6 s2 E
切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!
, t# y1 `6 d8 D; W3 ?0 ~% E# ~0 I* ]9 y
- ^( t' |) S( p" \* g4 F, Y& ?

. m  d, E- e, M1 I3.1首先进行前期配置工作 此处要细心一步一步来
9 `# j' N3 B: p$ R: S8 D7 K& T( u$ l: S
打开设置 按照图片顺序操作4 S7 B+ X" p# _; w+ p" W1 f
1 Q' W% D+ K' l: i# I( v
- r& ?6 |  J2 S* q  @
: G" g8 t( ?8 e) y
: k7 `( I4 |1 ]% b3 j
1 H( U% S3 K5 O" K

7 |7 L) \! d1 l  S9 P/ j7 U4 a
9 z4 k( n! J" }$ \. n" X: w9 u
( ^; B$ p% B6 J) A, V" _3 D) y, A* a2 }5 }) ]. _, f
4 f$ {% D% O, W
- d7 }7 ^& e' y. d, O+ N
然后ok保存  每一步都很关键  不要遗漏   8 t$ `5 J7 v  z/ D, ]

# U& |9 b2 q1 {- S2 A3.2打开simulink 选择 stm32 adapter
' ^$ h( g, [4 Q! i2 ~' [0 z8 H) C7 X& y+ e1 Z0 R! m" p+ k3 n; I; \
0 ]; N+ h/ V  P" X8 L7 U$ G

- p( a( H+ ~7 ^/ ^选择config模块 见下图8 ~0 G4 D1 F( ?- Q& _; n8 _0 a5 l
  O$ s; S4 w. z4 \) e3 u
% c1 J% Y' p- a1 r

' y, J  L) }6 s8 f. `. W% h3 @将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图+ t3 K$ R% G* d- n+ F
/ s3 d. z' d3 v) i% w

6 o8 c' _! J$ k% D$ K9 I# l/ B$ W
1 Y/ w$ X8 [9 M( B* }! h

" m& w, s3 Z7 x9 [3 f然后ok就好了- z2 m; q! Y! C  L9 C1 {
9 T0 H' O" E# c
3.3 添加GPIO
' \* ?3 ^3 q# `4 I, b5 L! Q9 L$ O5 H* z3 |$ N# S( u% g9 X9 I
% b! U# |& g5 {! i! }1 N% k
( a% F. l  E9 q2 h4 f, D2 f9 m; I
将此引脚write模块拖到model中 因为是输出引脚 这里是写操作
& d3 w& Y, `; v2 K# z, @( H# h
" Z8 [! E$ I4 U: T% c+ `" H双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)
; ~8 `6 Q4 @& y- y; C+ \
- ?6 r$ {; n/ R; P0 v
7 j6 x) t# C5 U6 c9 y5 a- I
. A& f5 E2 I- s3.4 最后添加一个脉冲源 配置如下) e7 Y  G5 i9 v; R+ O7 ?6 h0 |
( K/ p7 \7 @/ A/ C0 [3 _( i

# K6 T) Z& U. Z' U# [6 M' W9 p/ D( N
最后的图很简单 如下图0 d* G9 z$ H5 C

# x! j8 B7 ^* B- l9 s4 x. l 0 V" t9 }/ Y) T9 ]
$ A& |- ?" B8 W
下面就可以生成代码了  
; S6 M+ [; o) {% L" A" U7 z( F
4 生成代码 + ^, t: @# {' Z# Q# M" C$ D( L% f# M

; [6 A/ p( Z+ N8 J2 H1 e' h5 o4.1 点击code-->C/C++ code--> build model
$ J3 U8 l$ M) I4 B! o1 `( H. o6 S8 Q6 E
$ _4 }. O# c, {  }1 M4 p
/ ]3 Q1 B. S4 _) ^; V: Y
然后 出现了 report
, r- \4 U8 k/ @
" ?; ]7 ?; [8 y0 u - N. \; E3 a2 S& N! L4 _
6 s9 r' q- m5 j; U4 H0 W' O
下面 我们就可以回到stm32cubemx中进行程序的生成了
, |8 N3 V8 A7 [% V' o8 F" Z# C* _5 |5 ?0 P$ I' H  ^
4.2 在stm32cubemx中 点击 生成keil项目文件
  K% k" z7 [% n& i8 b& g  _* d1 i
( x2 u( ~! U) a6 g2 X/ J ( G9 L" e2 |- Q+ [

# ~" T5 i9 P. Z: o3 z/ {! \然后  直接打开 project
+ C$ o& l* n* j8 g# g& p: L( M* G% {, c. d) V
首次编译  大家可能会遇到一个错误
4 t2 x5 }, c  ]+ V2 P. F0 C% E* z3 Q9 O4 a4 z
4 E" X9 _9 I6 k/ T- E# c. |
+ `8 {* n9 Q7 o5 J6 \2 q4 z) j. i
我们找到位置 将其注释掉 我们并没有用到它( w0 q5 v- M3 B* D4 {5 `5 q1 U

* i5 |- }+ c3 U  p
- t/ b% a' }( M7 ?0 T2 P4 X% l& |4 |( n' v' N$ O
然后就没有问题了( m6 S3 ?, j7 r* ?, I7 J
8 k6 l% w# h* x3 i. [3 {
接着便可以下载程序到我们的板子看灯的闪烁 效果见下图
# D6 n5 E5 \% X) @( K7 g2 B7 s) T+ a# w( D1 t; ^' B7 X# z8 |( H
游客,如果您要查看本帖隐藏内容请回复
/ Z) n5 A! \  ^  S- R5 y# E% G
然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!, n! K7 k- K! m" N

: X% T) Z/ v: K. V

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享
8 T" b' H! S4 X: S0 \" ^

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO
& g4 k5 R  {$ y2 M! ?8 H
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享2 ~* w6 f2 q( D; W
  • TA的每日心情
    郁闷
    2025-9-22 15:05
  • 签到天数: 56 天

    [LV.5]常住居民I

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-6 13:09 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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