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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 + b( s( |" i2 K  ^
) D- r# s6 U2 U/ R+ I/ t9 b
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
: |) h. q$ T: a4 r( b' ~- P" T) B# ]( R
1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库
* q: B  U7 [6 C- a
. N/ i9 K& U, ?2 P) N# a. f2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建+ C$ g9 P9 Q' C) X4 O- t: g8 e

0 G' N7 P2 g- y+ {2.1 将PB0 设置为输出+ B! O! K1 Q4 n* ^8 D1 P) a! f) t

* f4 ~4 n8 h1 R% \( M1 G  {
9 l# h; W4 @, U8 j
; Y% K, a0 s' a; z6 ^* L) g1 K; I; m
( {2 e- c/ w6 x8 A1 F. f  T2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好
; Q% q" l8 E7 v
( n; H' _" x8 @! n- n2 i ; g5 c/ O) W9 i1 m

* e' b# H# Z# _6 t$ A2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys
+ ]5 _" J- K% N4 Q% W5 F, l8 F
! t( ~0 B0 f3 E& y5 c" T 0 L1 m$ v, }. l! x. s$ q  ^+ V

6 S3 ~1 \1 U7 d$ F2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)
5 N7 v$ B# Q* X8 @: N6 t* z% T* k! z7 t  B  H, X  t0 |7 X5 D

; \1 G! |8 c* d! D& a
* }+ T# I7 B: ]0 y; V2.5 引脚分布查看(usart可以先不管)
9 R* G2 J0 q1 e) F' g/ p  T/ n* u3 E( e
6 ?' o: K) y2 l1 T$ ^# O' ]
" I7 {+ k9 i4 u0 F1 m
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考
6 w. {9 J  m0 b8 e. i
# h0 R5 [- U2 a! A: P + ~& x, w/ `# _% g( o: n5 h
# k: ?( \! U; H1 r

- ~6 g. W9 r/ O% _# {; l
! ~: ^6 V9 T7 [# X; {2.7 GPIO配置- `# O* \8 T/ _0 F" _0 {. ^4 t

1 G* D" G3 Z8 v! x* n9 v: Q* T
, w1 M7 F$ T4 |$ A% q
, H  n9 u: ^' a- ?1 {9 O! W
. ]& z' e: B! ]) m; K4 T$ A7 u
! {: s8 A' @) d0 l; w) K配置结果见下图
) g2 @4 F' c& m$ \; a- ~
/ ^: T( J) d, b* a# c; Z2 E$ j
& q! i; c$ J& m) x
) d. Q3 [" Z6 i" N: e" y2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)  X7 G! Q) A1 O4 F0 Y- o
: [* L3 q) g4 T
: e5 Z3 u" X- r. A. F( X

6 Y3 N5 A; d2 u5 T3 下面进行simulink部分的设置
* D; k! c) v9 W" M3 y! G% C* }0 T- l' o9 C0 T
首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
3 y# \  Q# _" ^( X2 `
% F# T7 v# _: }+ T- w( N; H切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!
% P# f& K- P# k8 q8 y
: k3 O: Y& b9 b
5 l* p% }( N/ U' V4 r6 z: L; N2 l0 F: J! A8 z2 B7 I8 u
3.1首先进行前期配置工作 此处要细心一步一步来+ a: v! [& A, o- R9 R6 ~1 x! {- d

4 B  w  A! _/ L) E- Z+ t 打开设置 按照图片顺序操作3 `: m9 M4 V3 u  ]* o* j

9 V& \; N: A% l3 c
( L+ S, {9 o8 v4 I6 A6 Y3 ^3 F6 w5 _1 C  q0 u  d0 ?

: F( V4 h6 o. H; J$ m$ s) `$ y! U# ]1 s6 I1 x' ^1 k

/ f! T. X0 Y- m! n* u* L; r2 \% `* q& W0 f/ n" x
* w% r6 ?1 C- W/ Q7 ]" u6 c  A

- r7 |; F+ u8 F  S& T6 g- [
& z( M' @. v& }. ]" K9 u3 p; v8 v; o) l6 U. N/ ^( c3 A6 J- H
然后ok保存  每一步都很关键  不要遗漏   
: L* U' W1 A: Y  i' M0 v7 c$ z
: D7 W; `( \  u4 v3.2打开simulink 选择 stm32 adapter
& n  v( i* g; {" o% A$ t
' N2 ]" n2 X2 _; P$ D4 J ) V8 B% j7 H/ @9 L" a% [0 [! [- j8 X

* A: B% D' J+ u- o( t6 u& {选择config模块 见下图
- x! q; ^+ j. }# u; L6 t! m# l1 |) S

8 [0 c5 D! p# B$ {8 d) R' |
8 [+ |* K* ~3 r' ~+ h将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图
. `( ]4 ^- W1 t! {5 I
* {+ y  Z; _9 _: t8 w. b! ?
6 ?0 G2 b  S# ~5 O) M0 w6 Z0 g& T* t# T

1 t+ ?" w4 J% P+ f+ h$ t, a& W; f/ G4 [+ w
然后ok就好了$ I" W9 v7 G3 X+ T2 a

; }: H# l; t( E# }  q+ F; }( B3.3 添加GPIO( |' ^/ S- \6 m9 h- Y5 ~# E
  x, i& q  S% a* q3 c7 h
% c7 P9 T- S% p
1 Y5 j  V0 \7 W! ~3 d; C; S
将此引脚write模块拖到model中 因为是输出引脚 这里是写操作
" I! I/ W0 w, s% W' t/ L3 D9 g! |0 X8 R0 a: {
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)  Y& N7 m" ]" k4 A/ V5 `

. L2 m. g3 r: x2 P5 A1 h
( b1 P8 ]$ l( s8 _! K+ ~( D$ k  L7 W$ `0 M+ s7 O0 F1 ~4 t+ M
3.4 最后添加一个脉冲源 配置如下
7 L+ k2 j% A5 B, C& _. B
7 z; R; f, m4 H% d% N# Y8 x
. @+ Z3 m" ]6 w! v4 ]. L0 {  o! |7 C9 p
最后的图很简单 如下图6 y& i$ j3 K! V: i& E

" }* ^7 Z. {7 U8 U6 p, j1 B : O( W$ c$ y4 k0 J! {+ J" k
7 L- ~" N5 v7 a0 |" Z
下面就可以生成代码了  4 ]* n* I* B9 J, I
" t( Y8 l, u2 {' @4 e
4 生成代码 ; c. B5 g7 O+ O: r# f
$ Y' ]2 [. Y* K, t% U
4.1 点击code-->C/C++ code--> build model) v2 y2 V2 ^; c% Y

6 F" K" _7 J9 Q, P
. G" T2 @: w0 h! z/ r
8 [7 W, p! o4 @9 f: S8 H* V* T然后 出现了 report
5 V6 P8 }) i7 Z1 a5 S! o6 s
( K6 Y( t# O8 ?* P$ a2 v % w- R: k: }4 i6 p

8 k" b. A4 B  [& H下面 我们就可以回到stm32cubemx中进行程序的生成了
8 G5 Y6 C/ g$ w; B# W3 C, J5 ?+ |; J  h6 A* g
4.2 在stm32cubemx中 点击 生成keil项目文件
! L  y0 |  H, e3 a2 ^
, m7 w. a4 e+ R
2 _8 B: J" A# s8 m% P
1 Q. e4 C, O/ V, r) \. G然后  直接打开 project 9 L+ N$ F% G; L' K& E* {: H
$ q& ?# L6 M& L& @: C4 m
首次编译  大家可能会遇到一个错误 & `6 F/ `  O* l& K6 F0 V" U

% q* ]0 ?, `9 Q
: ?3 h( m/ s4 u* @
1 L/ h  z, I& S  p我们找到位置 将其注释掉 我们并没有用到它
, I% F' [$ x- d! c5 V. G) }4 z) f) o' b+ x. Y4 G
) B  K* V9 _* D& Y1 [
5 q* _. q  e; Y' A) Q
然后就没有问题了) w- X# ]6 t' M- Q" p: _5 w" r
, l9 G& x  K3 `& r  k+ f( @
接着便可以下载程序到我们的板子看灯的闪烁 效果见下图
) d- [9 Y2 ~9 `" `6 H+ E
, L) j; b) l! G; f+ f; Z( U4 j
游客,如果您要查看本帖隐藏内容请回复

0 D$ [/ o5 N! Z然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!
! T1 J7 q6 O& S4 u2 v; J# u: B: A8 C& d# ^; A, ]- q* o

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享* I( |3 @0 `. R$ K2 m9 L' D! Q- Z

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO  O, p0 e+ V! \# f
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享
    1 B- ~6 Z+ A% Z* d# Y/ a
  • 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 16:00 , Processed in 0.218750 second(s), 26 queries , Gzip On.

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

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

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