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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 ! Z. q3 m% t( R1 g; @
4 [3 L% ~9 g1 O: q5 m4 |
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
$ k+ R" \! }6 O# E. o# ~
. n6 T& K% h) }7 C1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库 % {, M' F# p2 M( H$ e, b
* z2 D# j3 M: z, v
2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建9 w* P2 Z  F- ]  _0 l% i

% H2 y3 W( R7 V+ a2.1 将PB0 设置为输出9 j3 I5 o1 X8 I2 b
. W7 K" _$ w6 C& g  D; I6 U& U; t0 J

( k" ]- H" [! `& P2 S/ n1 T ' Z; _( {! Z. M$ T0 u/ Z  _

7 m: C* n* I4 i$ L1 ?8 [2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好- b. P8 K8 L$ h; Y- O) C2 d

. e. n. h) X; d5 p* i7 w
1 U3 z  L1 I$ L
& m# H" U2 b) f7 B7 D4 T2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys! i  ]. s  m! E$ ^
. A4 c& I* S3 x4 y' R" R

1 J4 u# |+ T* L$ E5 S0 L+ A6 G) o1 `" {; ~2 U
2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)5 Q+ X* E- i9 B3 T

" J# j& Y3 N+ ?+ l  J, }  ~ 4 ~/ i$ Q) E5 H! S
6 R/ T* _; q% }5 c
2.5 引脚分布查看(usart可以先不管)
! F$ O) A, ^6 o1 Q
1 r! D& |+ c: p4 n; j
# y0 M/ R, W! z# }1 y/ d# j  J& R/ @# i7 `" B+ a, n" T
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考 / z" E3 E8 c( [: E

) y! ~0 M; S7 {
+ y( C8 x2 g4 O- Y2 D! L) E4 H
3 \7 }7 D  z/ {# R* b : b! M9 l1 z: W( @7 u7 l
/ d9 |- y2 B! U, O- C! H
2.7 GPIO配置8 a: l2 k! y9 @; S

  _6 r* s* j$ n
3 ~0 \4 {; c! w' s& b8 O/ p6 Y4 M# N! Y
4 v( T8 H' c0 h* M

: g2 r0 ?4 d. h# F7 q, l' G配置结果见下图
- q8 q9 z0 l5 [" `  ]
' }- M% F$ J: |& }. ^ 0 }: q* u" h) {

4 O; j; e6 I' f9 U6 j, I2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)! |7 i( x; m8 P

6 y& a+ V( _: _8 W* h& b + a: ^/ p+ k7 t8 y

1 R- ]/ I7 x" C. S# c$ U! U; A3 下面进行simulink部分的设置
/ Z0 {' Q) c, [: w# L$ ]& B7 m' z5 i) ~5 k# t! B
首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好5 L  ^, N) M- n1 T

5 T' i" Z5 D3 h( e2 H1 X" S切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!$ T7 h( X. I, a$ T0 B1 V

9 e5 J  D9 d5 q4 S1 e% k
2 z) M$ w4 e$ u: d7 [+ p6 g% q! r1 C3 G; s
3.1首先进行前期配置工作 此处要细心一步一步来% Z" e) G9 b) \' I8 i4 \
' q2 c  h+ s( j& }( Z! K% e4 l
打开设置 按照图片顺序操作4 B( L+ B- T. e5 q! Q9 b( K5 d) ~

' x% C6 g5 \( @) {& ? ' ?2 o' l' u, @& C1 m
( F' ^" x- I' `4 x3 M5 J7 g

, L2 L, O8 L! P) X! M, u1 B% r/ A6 t* [4 R8 _. _# Q# o

' L1 V6 r& S$ m: m! N4 ]1 v( y/ u3 d# v% @2 N: @, @, I

  V$ ?9 e! f. {& A  N2 ]* ?9 j' i) {! m5 d  _, r

! @1 ^( O/ E* @5 {- B) s! Q" q" h+ I" R- t6 {8 `
然后ok保存  每一步都很关键  不要遗漏   
! }. i! E- F$ S- _' ^! i, |4 K8 [8 k# z2 U
3.2打开simulink 选择 stm32 adapter 8 ?* r+ ^6 ?4 N+ A+ T+ t

/ X2 F; z( _( `; l! S
& }$ `" N. Z2 c# ?$ R: b" T
# ?0 u& `! I! O2 n% j选择config模块 见下图
  F( {  Q( \" d# }" b2 S+ k$ v* Z* \; Q
# V6 X& N1 t2 H$ q' K

; O! a' r' T- L* x$ N8 n! X将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图
& V* T% v- l' t* _: m6 U
! e/ J/ k: s2 E/ t
+ }/ ]5 y0 T! z/ m/ r7 R
7 [. @8 Z6 O0 T0 f. @
# U6 I  x8 Z, z! R' F) Z! e
2 Z4 U- D7 y, H然后ok就好了
4 q& s( O& C, O; C$ m9 ?; e
) ^  |6 k+ n9 d1 z  T: `! V, x3.3 添加GPIO
5 @& g* K( w' }  l% D( k" X) y7 q4 W2 A6 D" c) A4 R2 }
1 M9 n. n2 R; z, B
" M0 z' H, K+ O  a+ p) H8 p
将此引脚write模块拖到model中 因为是输出引脚 这里是写操作 ; ]: i+ G( ^& I6 W9 n

, w) i% b- n, b双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)0 m& d" b3 o, }8 H# [( y8 e

% a) A& s% ^8 t5 u; S. { . Y1 K; s- H, t% _: w6 e

) M7 |+ z. x  Y6 L8 ~- N* `( y3.4 最后添加一个脉冲源 配置如下8 L& b' y% a! {+ @: ~& g

9 P- b) n, V6 Y+ a* G( c
6 ?2 B  M& ?" [' X- c
5 w# W8 X. b8 w$ K9 i最后的图很简单 如下图
$ M* I. u7 V' {3 j! ^, _) R8 Z* i1 q- H6 h( [7 r5 p
  r+ R$ b3 j/ q2 V$ H3 d6 z
4 q( m- ^' z+ m% Z9 U" @
下面就可以生成代码了  ' D& h0 t- [+ a, p8 N

% ^- u1 W0 P5 e! Y) n4 生成代码
" f) E7 _' f3 h5 ?) M  X  W5 k. Y2 v: ]. k- X% R0 k
4.1 点击code-->C/C++ code--> build model
8 J6 `; ], I+ R9 t- M5 v/ D9 P/ F4 m: C: m7 d3 e3 d/ s# U5 L
7 _( o0 z: J$ F
3 g' E1 k7 e( u4 r
然后 出现了 report: Y& A, W8 `9 C# I

1 `- M+ b0 w3 g# O0 J# \: N7 C - o8 U7 e% j7 |  p% x

9 u! [9 K7 b2 W4 }7 U) Z# P( q" t下面 我们就可以回到stm32cubemx中进行程序的生成了
- \' c* ~) L- L! v8 E
0 `1 s6 {6 g4 X; S8 |" X/ K* @& L4.2 在stm32cubemx中 点击 生成keil项目文件
; e5 S4 v3 y. D3 l$ G5 y. B  a
3 y& t. X" V8 n+ c$ u 1 p4 X2 z: P8 A. I
# L: x& J! G3 G, k( Y
然后  直接打开 project 1 m* s: J; O; C$ j$ _% y7 c$ s' v

! r! ?. S" j+ x5 i% L& m( {首次编译  大家可能会遇到一个错误 7 w, p( P! e3 o; Z

7 J- g. f+ B% ]( x( k6 y/ ?) P% q8 t ' l& d# n( E! G0 P& P  L8 A8 g
8 Q6 l- Z0 W4 m/ l! j2 v% x
我们找到位置 将其注释掉 我们并没有用到它; q. l0 Y+ U) {' a7 x& H
. {$ h# d0 l9 ?: x, I

0 Y/ T. R5 C: a+ X& V) D9 `5 J5 L1 E) d% i6 c% e
然后就没有问题了
& @7 ^/ S$ a* }" J8 c( }
8 c9 G2 S& u, H( l8 q接着便可以下载程序到我们的板子看灯的闪烁 效果见下图7 ?6 i8 A2 o5 P$ c5 E

1 e+ w$ M* o. ^" b3 B9 A
游客,如果您要查看本帖隐藏内容请回复

$ g, A  J1 G! F2 ?4 F; T然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!9 j+ Q* }. ^3 c# }4 u. L. }

8 H: }1 ?( i: Y

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享
1 q( L5 f; Z9 Y. g% L# X7 w

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO
0 m7 Q$ {1 @- z' W
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享
    . p5 x+ O4 W: ^3 E1 V: z+ K
  • TA的每日心情
    郁闷
    2025-6-20 15:44
  • 签到天数: 34 天

    [LV.5]常住居民I

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-21 09:06 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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