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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 % ]! A6 R8 x; l* q& d
! D$ H0 G, p4 W; H
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
) o( u8 z8 M0 D3 P. H( |
6 g# c# S$ B3 Y1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库 # @* m6 j8 {- E3 L* R

5 a7 a5 I, T9 h2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建- B" A- e% E. J* q3 f% }6 v9 G6 r

9 m# Z- _' h; m: U( \$ m2.1 将PB0 设置为输出
% W; S5 ?8 b4 G; z
; n7 j2 f; R3 z8 e
  ?" @+ f9 `0 a7 E 1 |, M3 m& j/ t7 T
( ~: q2 }7 ~+ r4 B
2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好& |4 t: M* J# s3 t" Q% i
7 B& v5 f1 ~* J. M3 S

0 t  `! l9 f- W# P4 M1 V3 G
9 J6 v& j: i8 ~2 K2 N4 l% F, j2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys+ ]) S  q+ {( x; k1 w( I6 s7 W4 n

# ]" ?8 _& G. u: R, o" w- O4 g ' _& G- r! O, S9 w, a+ R2 Q5 _; Y/ [

5 B5 S! Y& u5 A$ r2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)( I; q5 c# }8 n! T, s2 ], ]8 E

7 z; G& ~  D+ j5 H ! E1 Q- h1 S; G2 }$ m
- i" }# s/ l+ ?5 B  u1 n
2.5 引脚分布查看(usart可以先不管)
' f' s; Q: k- Z0 D# h/ e* O5 Y. O' m
9 \5 m0 Q! |0 @, W( k% E6 `
/ O0 K' Q/ f" C1 b3 S; Y3 T
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考 & E( p4 n1 [4 P4 R0 f$ ]. m8 ?' K; T
( ?+ T+ k& |% A' S& ^, [' V

* Y  D9 p1 ~5 o  L& z& l8 d
! v% x8 i9 y8 s; G
5 ~4 |4 Z* m7 a. I) O
% ]3 C( L7 A2 g0 G, N2.7 GPIO配置
- K  Y5 P: s# d. y& w3 U2 f% C9 u/ j. [* b2 C6 l1 q( q
4 _6 A% Z; I' Y3 u; x4 q2 h; Q( ]1 ?9 H

: N6 C/ T" [/ }% N
9 h$ ]2 w# k3 l% @" x/ p' \1 X4 }! n  z) j% l
配置结果见下图9 ?' l: A1 t# |6 }( _

( h0 f5 b' S! F3 h( R9 ]
( }: `' E1 e2 ?" m$ n: `# m" a- k* t
2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)* ]9 z  ^# P# r; H2 a1 I+ j/ I
" i! |. L. @/ i: [3 I8 ^

* K+ E; ~( _% H: k5 O% U/ x
7 H: J' M- x9 i) l/ h) A& X8 t3 下面进行simulink部分的设置
' |1 j8 I" A# p& U: s& S* o1 I5 K# W! B$ [/ ]; `- s( u$ G8 Z
首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好1 |6 o9 j  I4 B& z

# c8 `6 i1 T4 s; ~$ A$ P8 A切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!- F6 k( J) X1 ]6 Q' S

9 T) u/ m7 m& ?2 v5 F  j8 X; K
' K( X1 _8 }. \7 }  n/ v) e2 P% i( Q8 F; a
3.1首先进行前期配置工作 此处要细心一步一步来. W0 P' w: Z# D

  M- P) i" A% P 打开设置 按照图片顺序操作% ^: u' W+ ^2 J( O% F% w
: p( F" l$ B+ B7 b1 H- _/ C( s

! n! f, Z% Y0 P- K. v
* K8 U& N% M1 ^4 h
5 _( ~9 J5 ], R" }0 V( B5 z
4 k0 s4 _+ Z( ~4 E3 Y3 o; r/ K 4 Y( J( M& Z# j7 ^1 t& N

8 Y4 u" F+ T" ]/ \, V ( x! ]) o% [3 y  x1 u, f
3 h: J5 M7 y; g6 m
/ K# Z& J/ @' {; Z: {

9 v9 N; q: m' ?然后ok保存  每一步都很关键  不要遗漏   + x5 ^: E2 U2 z0 r

0 o* y) w- y" u3.2打开simulink 选择 stm32 adapter
' m; l( V2 Y$ ]3 s+ V
9 Z8 J& U: S$ `7 h - S9 B& n: v, e) g, D4 J
( k) z3 v) m5 O1 O5 e* L3 ]
选择config模块 见下图4 _% b( i# j. `

* {- J0 n$ ~2 @* E5 F# C7 K
8 Q6 s$ N' q& Y5 P; q6 \# w3 z3 G; i% c; R2 G# o, S. C
将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图$ Y8 ?: @% \+ g+ O$ a- b2 {# R
2 @! ^: p; i0 d; i7 e2 ^  N
4 u7 p3 g7 S& ?/ v
$ U/ }2 k+ m0 a8 T

+ \6 s* t0 w0 k# v
' K! }9 {- h6 I然后ok就好了
$ J! }: m# ?- H7 T5 G# G
; j* T+ }2 V9 O% G6 k3.3 添加GPIO
6 e2 W. ~" m' z( L# t% v2 _6 M# |( i5 ^0 V% a$ F) o

' y. w4 J' `/ }- g' f% ^' t
- |7 U& Z7 r" ^8 Z将此引脚write模块拖到model中 因为是输出引脚 这里是写操作 " A5 ^4 e( P5 Q1 k7 _
0 k( C! f1 @1 R
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)
" _! Q2 n& F7 G2 U' `/ M6 ?1 a( i2 w6 A3 A1 B4 ?8 s

8 O9 E+ o8 T' V/ X% ^9 z
  _) n. V4 L6 l7 s  J. ]$ w0 c3.4 最后添加一个脉冲源 配置如下5 x! d* X7 a- C  E6 S9 w

) {1 g' a8 @# k0 t$ w% _
3 |- T8 l/ [- N/ K1 E  V5 `/ n  \7 a( B- T
最后的图很简单 如下图- h7 O9 w; {0 ~+ [4 @1 Z# {

& y. I- |4 b2 J; @+ b$ D9 o) } 3 _! |6 {& W5 z

6 I4 O, z8 v/ z& @1 V5 H9 C' h下面就可以生成代码了  * x. y$ Y, l- U1 O& @$ [1 i. q
+ S: I( j8 [5 V# R$ I
4 生成代码
& Y% @. t% m. P3 l2 S  V5 C  w& e. x$ |- F$ e. u5 a8 F# {
4.1 点击code-->C/C++ code--> build model
, w4 `/ y; R0 z4 L
, t9 p9 w2 v! `! \3 a, X
" g+ i8 X4 h$ p" E7 ^6 ?1 M4 |/ Z' y" e; L. W# c; @) E, |) }
然后 出现了 report- {- c0 l! ~/ o8 w
4 t% o7 _2 N) k7 n5 [$ V

$ u( s0 ]  k6 `9 _0 v3 m; h( R( q  U
下面 我们就可以回到stm32cubemx中进行程序的生成了
0 y, S' d# g3 u* _  m( y  T! }9 }7 t# _" \" @; q6 m( d
4.2 在stm32cubemx中 点击 生成keil项目文件1 t( ]  i$ K: y+ A; R
/ G# ~* [% J2 M9 A

) e" c' [9 |! H! i
7 }& t( {9 G5 P) ?* q% m- d然后  直接打开 project ) u" A- l6 e/ }, D) A
$ E6 h" u$ F2 c8 \  ]& C  d+ D5 K1 }
首次编译  大家可能会遇到一个错误 ( n8 n! k0 P8 v+ U4 g1 ^

$ K6 ?5 g' G' p+ N- F
4 C6 e. {2 i- r0 e' P  t! O5 ?/ L5 M; v
我们找到位置 将其注释掉 我们并没有用到它+ k$ }7 F' Y+ O/ A  N! G
; ]: h  K( h' }2 `
# p( K& Y# ]7 W/ \3 [# y, X

( z; c$ L% a( J( G' I, x然后就没有问题了
3 {1 G1 A0 v2 H$ E* u9 E  `* k' r# z8 |2 F; J' @
接着便可以下载程序到我们的板子看灯的闪烁 效果见下图) p. ?6 n8 |0 l% q
; q8 H+ {$ b. ]
游客,如果您要查看本帖隐藏内容请回复
! e: I5 V4 h/ }& m- _, o/ v" z5 t
然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!$ ^9 |, z' ^% k& z  z! [

. k8 O: v8 U+ X6 _& o

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享; O# ~8 l% g' ?. ?7 v

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO
( Z/ K5 C: K* |0 u: y. a
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享& c* d+ ~% I- {
  • 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-11-24 03:26 , Processed in 0.187500 second(s), 26 queries , Gzip On.

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

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

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