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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑
) O! |3 V0 l* \5 @1 I1 I8 h+ n% ]. L% d6 ?
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
. p9 `! _# q4 b$ P7 |; ?( }6 p( B. ^0 Y1 t7 [* Z5 f& l1 Z1 d
1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库
0 c) L; d& Y+ J: Y9 D6 c) i+ Q: a+ ~
2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建
% B- G* Q8 S# _. K6 n' S5 c; d
/ a& O+ s& `' n: p" s2.1 将PB0 设置为输出+ m7 [* m* F+ ?8 W# H. u
+ A& R1 u7 `6 R

" J& Y( X& F! U" |$ ?5 x( s
( F3 F  F4 p- e5 G- }# Q) j" a
+ j4 k. Y/ ^. K0 R! S" L2 y2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好
: j( E8 e0 z/ a* \# {' m
: b$ |0 f) G: f( ^& c1 i6 v
$ m5 K2 x: Q& e9 F3 x, E
4 L: n% a6 [! y+ h% h2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys( V- Q; m4 u! a, A3 P! d
$ k$ ]6 m# x7 M4 C7 H  q7 }. P1 g
4 ]8 b/ w; y6 `

( D1 l/ U5 g8 v; ~5 F. S  O2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)
, w/ d& S  s. c. h  u" f8 U2 Y* m' M* d2 ^; Z: j' H* Y; I) N" e
$ f  \' w+ |3 Y4 ~  b3 b' p
: _2 q9 P+ V+ x7 y
2.5 引脚分布查看(usart可以先不管)# b9 a  D0 I- U2 ]0 S

  Y9 `# Z- X2 P  @& ?# S 6 I; v. @+ H0 f& D$ m" Y; z
) E$ A" I! E, N" b! c
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考 0 O; w3 F8 V# t6 O- I

' m( C& J( y4 W6 f3 Y
; b: D& m  L, T' a; B! h3 L8 T' y( W$ W  h

, W8 O( ?- O2 L5 z; Q' v
: T' o2 P* h. x8 z& ~2.7 GPIO配置
" v/ [' ?; V+ d; `0 B' A" T9 M: M) i2 \

  F* _0 Z8 N1 u2 ^
7 |& g2 Y" _0 K7 c: @5 I- G
+ c/ f- m( S% |2 Z3 ^+ r! n6 D: U; W
! ~$ x0 e- _( I: a+ ^! G' B: n配置结果见下图! u, _4 n; u7 Y7 g' b9 L4 L
* t' R) i9 |0 `
* ~# K" b2 _- U+ O

/ S, ]* O0 l: o# E2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)0 g/ o. v) v2 D- U

* N: D; Q; I) r" {" V: u# O1 m5 C , a3 ^1 F8 l( z6 ]

' o" J% T$ L: n  T3 下面进行simulink部分的设置 , Z( c. e7 E+ l

) h; l" l; |- @+ M5 F8 E首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
& `' s7 d& s0 M; q0 q9 ?  Z0 S. O0 H6 N3 {; v
切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!1 n6 \7 k9 T( y
. m4 Y0 @. o0 a( ]$ h" B+ T( k

9 c: P8 X5 H3 _  s
, C' x) D0 S( F: g/ `$ F# J4 H3.1首先进行前期配置工作 此处要细心一步一步来
' s& E6 |) s% X4 r' |7 m
- Z  s4 Z- }8 j8 I1 F* _/ C1 ` 打开设置 按照图片顺序操作, l+ N7 K' [0 X
/ w7 q+ _1 d2 L/ a2 W7 {2 N/ A
, G, M8 k0 j  k, c6 ?
5 q& x% [1 ~" J; ?

9 R9 B9 G3 s- x9 l- L' m8 X
& V$ Q, g5 h0 _8 `, M; y& S) r$ N& Z ; C% S! E; Q& E* S/ z9 M

+ z* y+ X) t4 d, M% q! A# q / p. u  S0 [3 P
8 T; S6 T) Y$ y7 P4 i

$ f9 `" ~7 j3 j" S6 L% W( @* ?; Z; H  N; E  F* W* M
然后ok保存  每一步都很关键  不要遗漏   - f# `- O5 O4 b& k& b' \

; Q4 Y2 k2 z) R+ C1 e3.2打开simulink 选择 stm32 adapter
5 p* Q1 i7 i: E6 R- |& e' ~, ?- U1 d
0 h; ^) m' N* A* S% r $ e- h+ S+ J0 ^  n" v6 Q

; A, q1 v5 N1 L+ P3 r; O2 [选择config模块 见下图" f& e* O7 n, W( }; l  D) g
  U4 G) [4 t2 B2 B: q
+ s, n0 f9 c# c" J* |. D- L
6 w# q6 G! L, Y& |
将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图
# ?1 V% x& K& h+ _: G3 h- ]4 |& w; }' @* R

) q) M9 j$ a" S8 a0 H4 v
, t& \9 E+ I- L; C2 ?; j# A( z: }
0 F& l% K% [( r/ m$ P' F& H, o
% g6 F' T# r$ _9 E& r) ^0 Z然后ok就好了  O2 @9 d$ x% r9 K6 j
: l+ c9 i/ k9 ?: u
3.3 添加GPIO
+ q" O5 k/ u/ s! F
/ j0 ~! Z( ^; T! v- J3 | + l' P& B6 ~. M$ h* l& a

) r2 N3 k; S+ `% y; b# s( O将此引脚write模块拖到model中 因为是输出引脚 这里是写操作
6 _, y( [" r- x% t: a' ^% \6 I- K$ z, G! {. v4 c
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)3 P. i1 \& }' k/ O* d; k$ ]

: z7 F1 x6 i$ {! v8 \- L
; @! r1 s, k% V5 @  u& Y1 W8 [' r- e) X7 ~" ^* }- v
3.4 最后添加一个脉冲源 配置如下3 B; e! W' ^3 T, T6 P

5 ]' o7 B) x& y6 d9 u% Z 7 c' Z; Q7 ^/ @7 k. S( d  _- s. _

7 X, U$ E7 {) j1 [2 ~+ H8 Y! }" ^最后的图很简单 如下图
7 E8 u4 C( c5 R0 J, [& q) y5 y8 _3 k' A: {7 R+ N$ Q+ w

6 _% {( n; z. {* E0 o# g/ s
# G7 e9 W4 Y4 [/ {3 C) @: b, Y' a下面就可以生成代码了  
' X+ Q* u0 [: O; [! _! ~$ z3 i- C& ?- u. L* ?
4 生成代码
2 r% x( m. Q+ E- o; Q8 c
" w) a" Q: |& T4.1 点击code-->C/C++ code--> build model
6 p4 N3 {) q* _! O. P' t2 Z  @; g. R% j& t& P2 u" U% q
! R! f7 N% A6 U* w
: N9 p( t7 M  N: e. ?$ R
然后 出现了 report( R& S- w4 M# c& R2 O

; s6 h4 G# }) F( ?% T# i 0 C( S' Z4 @% B5 T1 H. Q

8 U$ N" {0 T) `+ [+ ^; a下面 我们就可以回到stm32cubemx中进行程序的生成了0 K5 U* H: m* ^' o, f
% \: H+ S8 I9 v1 e
4.2 在stm32cubemx中 点击 生成keil项目文件
$ h3 E, g: X) @+ M/ f
* a+ b4 ^4 x) B# {- y , V3 |+ Z6 a# m4 X! N

. \, e# F- q' D' f8 P& G1 x, h+ e$ Y然后  直接打开 project
- [5 V& j5 z) P9 K1 ~9 x% B7 U( {
首次编译  大家可能会遇到一个错误 + D5 c& M% R4 ~  C1 n# o

1 d0 x) y$ c+ }
2 Z. {: w' b8 w% l% f
- P7 g+ j4 q2 C# P2 O我们找到位置 将其注释掉 我们并没有用到它
3 }9 G1 N' f) v1 q1 B
# [0 @7 w' q8 Y8 }4 G 7 R6 g# f, ~& ~  Y7 Z' w

* v6 W8 k) @( e% b# _' G/ ~: w; h2 I4 N然后就没有问题了
0 G% \  q, `! G! O( t5 t# `8 {7 Y# t. ^2 K* X
接着便可以下载程序到我们的板子看灯的闪烁 效果见下图9 d8 V* l+ B3 `' m# X7 ^. q

+ ~1 U! ~7 ?' [' i' |
游客,如果您要查看本帖隐藏内容请回复

5 A) Z7 p, P* G8 r* C% i  \6 B然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!
: u% \2 f8 }' g* s& c) F! q7 x" W; Q& E0 i/ q
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

    6#
    发表于 2021-2-20 10:06 | 只看该作者
    感谢大佬分享:
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享
    . w+ e% t2 G6 H# k+ W& A

    该用户从未签到

    4#
    发表于 2020-12-7 20:59 | 只看该作者
    ZHENHAOZHENHAO
    ' {0 T7 s2 d+ H# t

    该用户从未签到

    3#
    发表于 2020-12-3 11:47 | 只看该作者
    感谢大佬分享
    8 S& |+ \5 C* r! Z

    该用户从未签到

    2#
    发表于 2020-3-5 17:22 | 只看该作者
    这篇我要收藏,后面用的时候再细细读
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 03:56 , Processed in 0.187500 second(s), 27 queries , Gzip On.

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

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

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