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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 " C5 h3 `: M* ]3 x( B% P( K  k
- f; `; p! t8 k$ B6 D
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。: c5 {. t: P, z6 q* A

; r3 E$ N$ p# P! c1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库 $ \( u- G7 _; {* @
1 `; B6 D1 e. B8 n7 ^* F4 E, o
2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建+ D  \: Y, a3 \: g( p# v5 I5 t

- E! Z4 j8 t  w6 k1 V6 `1 _. G2.1 将PB0 设置为输出, H, a8 U$ r3 h% Q$ o# J

! o# ^; t8 L. j0 G% ~
( N1 V, m. t* s* Z( V* \% H % U; x( C3 ]+ K( m8 q6 v7 u  ]

$ W3 d8 b& e! q$ }& E  r) o8 o# W. A3 z2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好9 ~: z5 ~8 \$ L! K, ]
! N  W7 C3 J2 u+ ~8 B
) H  c& G2 \% x- E+ V! I

9 |: t6 Y3 R5 u0 M: _8 m$ @2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys+ C- |4 O% i3 U! ~1 ?8 D

7 W4 ^- Q3 V) N. s. D( S
6 z; t: H2 W) a0 ?
* z6 U% y) c- f: h& w' U0 p2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)
: w. k5 i0 t& A# h: B; Z3 I& a3 O/ w
1 \5 _4 V$ O$ j% q/ T5 V' j
4 Y0 {& }, d7 k2 P+ S' C) G% e5 u# I
2.5 引脚分布查看(usart可以先不管)# e9 k' A' N! K, Y1 C

- s3 d% v/ J6 d: p$ M3 O 2 Y6 X& P) }9 s0 t  z  v

7 h% ~8 a. a, v5 ?: S9 g2 Y% ^2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考 , z! }4 [/ A. r6 L
" U1 I/ Y$ h+ G/ V; C# S' |
1 s4 D0 z3 V( i) i3 K* N+ W9 B

1 e9 l' N+ v& n$ @( k8 p) {
' y: m; P- q9 J" M
/ o3 k' [2 P$ ?$ g# ^; K2.7 GPIO配置. `, N" k0 d6 I' u, z

* y. L" L# I4 @1 |2 J  ]) L' n, e0 _
" k. N4 P( b5 F8 ]$ a! w" g! E8 c5 U7 y2 Z+ q6 I4 e
4 g- p* v' `* _

1 ?8 @+ B+ c5 N7 V" ]2 Q配置结果见下图
0 a/ z2 U% F/ \* V' `: d. \8 N5 a7 K9 v5 e; i% H

6 v' R4 K' U" F) x1 c" X& R0 g
" p! N& w/ i+ G: L1 D2 @% F, s2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)
2 a) V: k* j) n
) X) W7 b7 c& C3 f! {1 V9 E
8 U+ n9 _; Q  o: l/ L7 Z
9 R4 U) b; Z( o' \2 u3 下面进行simulink部分的设置 " |. F5 o! U$ K0 C8 P

4 v3 u4 l+ ]# c: ~% t首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
) L9 p/ K! i& w, |2 V4 |  C  E5 x; z; v! i( T
切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!
+ L" w0 f* X# F1 b; M% ^1 W9 r2 ]! [3 b& w

% @. d$ g7 X& K! ~* H7 ^& r: e( ]3 I6 [+ N
3.1首先进行前期配置工作 此处要细心一步一步来' }$ }) o: ^: J6 s1 P8 e
# X' @) q7 B* \( b8 m  N# \
打开设置 按照图片顺序操作
( L8 M; P/ B0 k: L7 c; ^6 u" w2 V

* v- X/ s; H# Y6 g# J
+ J. k; i, w/ R' c9 p3 b
2 W' g7 |' x: x8 l, ~) U  c1 s' [! |* h: S/ T
  c& i) z/ R% {- t
# s5 ?: q. G, _$ b8 B

0 u, H# b' Z5 R6 o8 m/ |4 {' j! J: X* v, w

" d2 `: y3 b4 E$ z9 \! z" E, W) i: z; q1 B; t
然后ok保存  每一步都很关键  不要遗漏   
2 v3 T: ^6 e# s6 s/ A& D6 J( [2 e: G+ I1 O4 u& ?. }
3.2打开simulink 选择 stm32 adapter
; r  R3 W, r, a+ c0 i
/ A7 r+ }2 w, Z! P5 q 3 _. {! F* |8 h. E9 ~3 e4 K. {
) {9 p! C& _" U; E9 j9 _, c
选择config模块 见下图7 [! ~: y1 E! o! x

  J; t' \8 K: ]
& s) f1 }* `$ I; Z0 Q. W
0 E+ x1 o+ t& [) i# e) s/ `将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图
; i+ i- F4 m1 G4 @  f: D: ~
7 C3 G; R: c: d2 z 5 R9 _+ q0 Y, l# P& r; n

4 L7 H: {6 v/ Y3 Y% `9 _- q4 j. V+ s
) u$ Q- K) i! o/ d/ T" Q5 W7 o+ w' O5 d. l
然后ok就好了3 \) A0 s; X1 d* _3 X; ^

, ~  C, P# n0 b. ~1 U, E7 H" J  C. B( G3.3 添加GPIO( y# [# {2 x% M

( W/ M4 i. t, |) P+ o9 p   M+ G7 G: ~4 V2 D8 `2 S$ Z; a
4 V7 G  q4 K: v2 D+ Z
将此引脚write模块拖到model中 因为是输出引脚 这里是写操作 " P$ ?1 F% l9 Z& d1 A  x; n- ?  \& o
% b3 `, h0 m% }* M  e: G- U( W
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)
1 s' d) H4 e  }1 b% y2 V; B
: V6 @3 o4 Y, m; V- q- N* I
1 Y9 \7 [/ w! Z& u
. o. g2 ]9 [1 i5 b2 o* ^. J3.4 最后添加一个脉冲源 配置如下
5 ?  b$ M. w& [, B5 M( {- q! q5 k# D3 @7 J" c# }! \. M2 e& E8 u

( Y$ ~; n3 L0 I0 y7 w% Y1 V# _& E% N, J: r7 R6 e, _; F
最后的图很简单 如下图; D; v6 Q* n1 Z) N

. j7 T8 j* Q5 v$ F: _( { - Z) }- _: w" v: ]' Q

# |3 e1 I- E$ z( s3 `) s/ ^下面就可以生成代码了  
" r' m, ^& z3 U6 G; B7 g6 T; |  s: t* C. U9 x: t2 C- Q
4 生成代码 2 E4 C1 s6 l0 _0 }
) y  ^; e( t9 P8 O
4.1 点击code-->C/C++ code--> build model
; U" M, z; L% }* m
; K3 e9 g/ v" A( n( K4 A6 C. ?
3 A) @$ E+ _: e. Q+ K8 e' G& t2 k+ y4 O7 k; C2 y; r
然后 出现了 report
) p; N5 m/ v9 i6 I$ o3 G$ D" p' ]% x& X1 p

8 r% G- ^- O2 {/ r8 Z0 I, p! Q/ Z
7 i5 K7 \9 A: k9 S! ]" @下面 我们就可以回到stm32cubemx中进行程序的生成了) }( p) M! N1 S. x) b3 k, Z2 L0 S. R
; {1 H: u* T6 Q' r& K
4.2 在stm32cubemx中 点击 生成keil项目文件
* c& d: J! I1 U( u  p  ]$ j0 z
& A; B: G& L+ v# c% `6 L+ D8 t  }8 M . \7 ?& L& d2 x, z! i/ a
0 R% m( @; S/ N7 z
然后  直接打开 project
. J8 _8 [; I( t$ h7 Z
" R' R  o1 n. k" j' X6 q8 D* c首次编译  大家可能会遇到一个错误
, M! m0 f( M) v# D
6 y3 }# i0 \. S* w/ e$ `1 n7 [ & f- S+ {7 {; f) M0 v% S

% c% T7 F3 ], P: j& ~$ E- O我们找到位置 将其注释掉 我们并没有用到它0 U1 G- k9 o  y! m/ ]7 T, K! a

6 }( i  t" N; B: ? 3 F: o( p7 U2 X1 b; Y  N, u7 A

  x4 A* ^2 J3 K4 S: i# Z- R然后就没有问题了
% r9 o* g5 D) E3 |% t+ v
! X% Z1 ^$ y, [# G* D( K接着便可以下载程序到我们的板子看灯的闪烁 效果见下图0 f6 m1 l7 ]  c4 Z' ]$ }
3 Y) _, A% j8 t
游客,如果您要查看本帖隐藏内容请回复
# G; S+ N9 X7 R# Q: C2 k4 H3 \( h
然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!
2 ^7 C9 L/ c6 r: O  c
% b' f1 s. G/ A2 Z7 I5 V' m) J

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享
2 S) v; O" d1 W9 s

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO* X7 I2 O3 {. z& `+ m4 D' S- b
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享6 @7 o; [4 w! ^; G
  • TA的每日心情
    难过
    2025-6-13 15:47
  • 签到天数: 31 天

    [LV.5]常住居民I

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-17 10:04 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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