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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑   Q& u4 z9 t5 D: ?. \: x4 ^7 L0 `
' h; X0 n4 M) i. @3 a. \, A/ P
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。' v& [6 c8 W. T8 U. }3 J6 d
" b& \) _3 A0 B; M$ x+ `
1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库 7 Z/ ]! V. s% y9 S2 _  J) u
. i( Q4 m4 h2 `# j, q' {  k
2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建
4 U' c8 P2 `/ x' [$ V4 E0 h
1 R# w0 i- Z% S5 R% \( X! S. L, k2.1 将PB0 设置为输出# K% |9 X4 x. E* E
" V- }: f9 L0 q2 [1 N0 m/ `

4 W& Y. w1 w! c0 A' }6 A9 _- Z) ~
5 i- D$ f$ ~" U6 j& a5 A& j: I% m, P- N; l
2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好
. k( [! b* @" w
+ `+ I9 i5 A0 e1 E0 b( P# k8 Q
$ w; P3 Y( I3 V  c4 F& B7 v# r. k1 K/ E3 }& g0 r7 j
2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys3 k# K$ `" f" a9 M+ c9 {$ M

4 a  i. X0 e; T0 j9 R& s
  ?0 ?3 B- N9 h; T
4 _" s, e$ e2 A0 o2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)
* J, T( Y1 ]! ]1 w5 n& U+ x0 ]
, f) M, Q. ~3 B6 l 8 B( k! e7 @) V5 Q/ A

3 E& Z3 n" S/ c& n& ?2.5 引脚分布查看(usart可以先不管)- Y% z" f, x; C; h6 e
. _( p4 M, p9 q, Z. Z5 t

! L" g9 \9 E) H/ s/ D( ]3 [/ }
1 x2 q* _' k: b. }0 P1 b1 b2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考
. x( N, v' o+ u( Q/ @
5 o. i* U( Z& H) W
; f2 s9 N9 [7 C$ J, [( \# s$ E# d) V" \3 o- j5 f' @; `
6 ^; o5 G& n& x* L( P! @/ I* I+ I2 z* G+ g
: p8 V2 v- Y7 x% X
2.7 GPIO配置$ \+ G! s+ |( `; _
" z9 K" F2 b0 B8 F9 `
- ?- G. |* h5 Q# r& ^* R7 G

; r9 O+ A+ |" k% {
. k! |+ B, x5 t; v7 p3 Q& }. ^- s. V$ E8 ?
配置结果见下图
9 b; ]$ Q" [' a$ O
1 r& ], R0 ]; p ; l3 `6 E6 u( O6 F; ^
, q% U3 _% W/ G. z
2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它). P$ s. J; w1 a' Q0 [% x
2 p& f  J* ]. s# E' d
  S6 X8 |" Y7 I: w

% f: s- P+ M( n5 K3 下面进行simulink部分的设置
8 Y2 N! Q8 J3 Z/ n
  }5 G$ ~; l9 ^9 z+ ^: f" m首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
& @  C9 R8 l+ C- V# `! }0 t- Q8 u% d5 s3 n- Q2 A$ `3 D
切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!
1 ^- O6 h2 W1 K6 L: y+ V( V
& }7 t3 Q! V0 ^# a0 I
! R$ U4 ~" P* x5 H. Z: w8 q" r1 M6 v  O- h4 N4 V, s+ x% G% e# j
3.1首先进行前期配置工作 此处要细心一步一步来8 s+ I1 A/ I% \8 F

. a' l" [4 m) M. `+ M* J* S; z+ j7 ~ 打开设置 按照图片顺序操作
$ \' s* A4 Z, \4 M/ @) H0 @' Z0 M

. H: Z" Z. \0 u) j0 t
+ X- A5 m/ o/ p8 T2 N9 a& Y
4 e# B( d# ]: [% f% B) v
3 \, {/ x4 Q6 g- S3 i  R " {/ e4 G* O: Z) h3 W/ l
: X! j  t! `- W0 u) v- a
( Q3 Q* j, k1 A+ Q
( n2 H+ H: T* u* Q9 s+ ]1 [5 E
/ o8 }* F* |7 n4 b7 \6 i( h8 J

5 z( n9 K' C6 Y( `1 i然后ok保存  每一步都很关键  不要遗漏   
  b  Y( k" ]  A( V' K( E7 F! F# _" Q( K1 u
3.2打开simulink 选择 stm32 adapter & p$ i4 W. W3 [- a/ C
4 g$ j9 d# V8 I) W& V
% o% p' I! t* t7 L+ x& I
8 C7 y/ [0 c0 l3 t$ L6 n
选择config模块 见下图0 @- s1 c" u, m- l6 U
% N5 g4 k9 z& E
) o( _9 G0 _3 A0 T' x3 ~

' c0 X& W+ w' ?将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图* T! c/ d- ]8 n3 T
5 ~6 c" G  ~1 ]  M& f  ]  s
' Z( ]0 e" X! P% x

: O, z% m2 a: ]- V# N& k
; S; {- j+ a, m1 E* b( f2 e. |7 l
( q5 Y% F& p/ _0 G4 D然后ok就好了
" V3 D$ `" n" n
6 c" G$ |; U6 X) j2 q! O! w3.3 添加GPIO
( K" l% @: k& ^0 s: X! |3 ]* B% L$ u- U

1 l0 x* ~' W' L1 D# H. v8 Y
2 z) w+ G5 C- O' ^) p. r将此引脚write模块拖到model中 因为是输出引脚 这里是写操作 7 U) h  A/ c* k2 X6 @2 w) L

; q7 p! ^7 w! u5 l$ u( t7 ~0 f/ Y双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)
3 m+ a; `, {$ P% t2 e6 P& d2 d% Q- @1 w4 G
. F% R7 x7 M5 C0 ]
8 ~! R/ f( ]7 E/ v- d0 s
3.4 最后添加一个脉冲源 配置如下
# A2 Z' c5 V" K$ g0 M/ r0 O. c9 M/ l
& Q7 K. i. A7 e! Q

( f: K% _$ t& P' j; V8 n/ K最后的图很简单 如下图
; }: C' m; W. J" u6 \7 P# s! E7 |+ i4 A! @

3 Z8 n8 ~7 E' d" d
4 r0 k% G$ K2 }& X下面就可以生成代码了  + x6 v6 w) }# i& J( F7 H/ m( E

' c1 C- c) ]/ |. l7 d' y, [4 生成代码
5 |! [0 ]! D( O. X, O+ e
2 U) {5 P. N0 @' s4.1 点击code-->C/C++ code--> build model
* }( k6 l+ V* ~+ G$ N
4 x2 S5 m9 F% B! u 9 a) }0 }8 }" G4 y1 o5 [6 b
9 h4 v3 }' D6 Z0 B' a
然后 出现了 report9 I0 L, a) P$ k$ ?& m

/ E* k! q" S+ D. {# g9 Z
0 _- H5 e% W. N- Z. M) n* O" n5 X& U1 k4 {) V. y, e; [
下面 我们就可以回到stm32cubemx中进行程序的生成了
$ W/ z8 a* ?$ r! t* h* Z* l  v0 C0 {" q; }$ b( l
4.2 在stm32cubemx中 点击 生成keil项目文件
4 K5 z( ?" D  v; K" U
/ O4 ^2 V$ e1 | * {. [8 V1 G9 T% |

3 ?9 T+ H8 F1 s4 r# k. Q7 k: N然后  直接打开 project
3 c1 j" D2 j( Z1 ]- y) }' q- p6 V1 B" ?1 V
首次编译  大家可能会遇到一个错误 0 E, G9 P" G3 D/ D3 m) E( @9 |
; J7 O4 X: z6 ?/ S" x% C1 \
! Y) K8 Q1 n2 K" O" }" U! x
; e0 `5 f% o5 _
我们找到位置 将其注释掉 我们并没有用到它
) x/ E3 C6 y* O  n; P! M: O) w' j  _( R( Y( P$ D$ X

$ b3 }& L( D4 P8 m5 f$ _$ u) Q, I, B1 w2 q
然后就没有问题了7 z! a% T7 H* h( Y9 K  j

% L% P* H; e- g' ]接着便可以下载程序到我们的板子看灯的闪烁 效果见下图3 m" E6 z: L2 `

/ P4 U: U7 V" Y' \3 f5 V
游客,如果您要查看本帖隐藏内容请回复

7 W1 |7 X/ O' h然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!
; q- e5 \/ {* d6 i! ~# j' }
1 o; H7 L5 T( Y+ s7 H3 T+ B# D

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享7 H, y( p. h& d. ~' O  R* t

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO
" q9 R8 A- ]5 [3 \, V2 `7 r% X
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享) W4 z0 V# `( [4 \, |
  • TA的每日心情
    郁闷
    2025-8-11 15:44
  • 签到天数: 51 天

    [LV.5]常住居民I

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-13 20:00 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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