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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑 / P) M7 Z( o: g( a( e
3 \9 a7 Y! k- n7 t8 _
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。- k5 j; M* c9 r4 R3 R3 I) k$ D

- a" Z7 P; [  `1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库
5 z+ G& t8 o8 |! ]" {& w! v- W  l
9 I* e- J" ]( W8 B0 f! \; d2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建& h" j, t# F! \5 P
( S4 ]1 U  X6 q
2.1 将PB0 设置为输出6 v. ?3 O  f/ T' z0 ^

! e1 |/ D; D2 F8 A0 r( p* j
( G# i6 S4 d+ G
# ?& Y8 @8 i6 i; F" @6 y. k5 S! b8 T4 m% u! N4 \2 P4 l" R
2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好
! u, F( \2 s1 d; {/ y
& A) N/ e8 V* k; J) |
  M& U+ G( h4 F) ~$ U% K1 U& @* I' q8 K6 S
2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys" q$ l+ \6 P0 d, l; D2 ^. J2 J

" ~( m8 k+ r7 h. `5 C- r
! ~. [( j/ i) N; H
8 q$ a: W/ w! f% O# k+ g2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系)  ^+ `' V: n) W9 ~0 c: J8 I
. c" \. t+ l& G

+ Q/ O, O8 ~: {- m0 @* [+ t0 d7 c
. D9 q( s# d% |4 L2.5 引脚分布查看(usart可以先不管)
/ D2 r2 N" ]8 G: D. x- F% k" u
, w2 c& k1 i5 Z 4 b. |+ m7 n9 L5 z% W$ q
# [. X$ R: A+ ~
2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考
4 w8 a4 J/ x& T0 J
) E! ]' _  V9 P# {  o
' L" y1 Q$ H- X5 D
6 O+ S  N4 K1 j) y* t4 a
6 H3 O# O+ j8 F
7 J* i7 d  w& u% H2 l& v2.7 GPIO配置9 w" L4 d, T; J, R2 o
0 v% k1 Q0 X8 n' w, H, y9 G

% y, v! h3 N2 j; n$ ~# |( d  s2 V, }# j4 O

- K/ w- ?  o2 o1 V. G* e) G
% ~, i! r; E; l配置结果见下图4 l- L* ^$ _  a. h' F" _& J+ e9 v0 L
. U! L; q7 E% ^6 H7 S0 P7 ]
+ ]. Y9 O' F; K0 H

8 z& J; I, M7 [& S. H2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)& m/ m/ m& Q$ G$ G
" @, m  n( E' F" u

: l; W: Y) ]: ?( n1 t$ \; m( |8 O+ K  _: [, R9 T
3 下面进行simulink部分的设置
. F+ S1 A1 R+ b3 E
8 i) `- s! g3 h; [; A- f  M首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
( }' f, m1 F. V  j
2 k6 r, Y9 Y# X3 Q2 i切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!! y3 I1 O9 g4 Z! Z+ y. ?' m- C. B8 J
8 e' s4 p' t. a& B1 j( v

9 O' ?0 T) g( X
# J# S& d6 Q- t8 L7 W( ?3.1首先进行前期配置工作 此处要细心一步一步来
3 f- z- y! r. o) o: a/ ]$ w6 F* d& v! p: F8 I% _# A& T
打开设置 按照图片顺序操作; k0 _3 l, H) r/ D: ]9 h: W4 t2 M

" t- O( Y4 U; q- j$ B
* x. H: `! N$ l9 z# Y) U: m8 i0 w* X
! W; p( _: O( o# g. o' F7 x5 q
6 G& v% A7 I0 M
1 _/ _+ q  B7 r8 H: W$ f5 Z : d; g( N4 j2 p0 |, I
% E" O4 ?: @9 S' B
0 `( Y! I6 d3 D0 @5 Q2 b1 e
: S- H9 A2 |* h$ i0 {/ v9 v

. c2 ?+ k% j% j, t8 t! `' Z  a  ?; p2 N  C+ L
然后ok保存  每一步都很关键  不要遗漏   
# c: s2 k( e1 V# U
1 j1 E/ I- k6 B3.2打开simulink 选择 stm32 adapter ; T/ O6 y& t" H$ h7 W- g

3 V* P, H0 k5 w# |+ J* H
8 K3 _  V5 v$ `
2 w3 j, s. o( ~1 d5 D* O' S& C6 C$ l0 Q选择config模块 见下图0 m7 I3 K+ n# g  k. ]! P
& C+ z7 k8 m7 _9 W2 v. l  ?0 L

+ _  {, e+ S2 H4 Y4 V4 ^3 ], |6 h1 `# Q, [& k1 y+ @
将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图: |1 T# c9 E+ ?2 I
0 f$ B- r" S5 I* B

- b$ ]# K7 e" ~) A* R8 q" ]  b. c4 D
, c0 P# c: S" I4 g/ L; }9 B) e9 A

0 U) f0 O+ L2 d% c* h& G然后ok就好了
! l/ t& K/ {1 p+ c' D; a. D
, l) R# M6 l6 C# K- S. \$ o3.3 添加GPIO
: y$ h% X0 i* [8 [5 `( L- E# p6 V7 k8 a/ Q- G

$ x( R: l% q, d3 q
% s+ {: o( y$ f将此引脚write模块拖到model中 因为是输出引脚 这里是写操作
5 H) E. R% o4 U* t0 {3 e4 n, m! t! y: H+ W4 |' E7 `/ k* ~; ?4 f# i
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)
! H- K. t5 L8 `4 H, f/ `% P8 k- o4 ]; x

' r# f! F2 W) K( |
- T* f) p$ T1 P- [3.4 最后添加一个脉冲源 配置如下
5 O, b. ~/ w- d0 D: k8 b+ x  N& `. b4 X, W% ]

3 a& B' j/ k- m! t% P4 A4 V/ ~0 Z8 Y% P7 M3 \
最后的图很简单 如下图7 a  w$ m" B. \, h$ @5 e

+ i) a2 f% t# F0 I6 O- w, d % j6 p$ e' ^: J4 A( _. Z
  M# I$ k6 T' N8 f- D; T
下面就可以生成代码了  
* E( P) K" R4 J& B* D* @
$ w- A, L0 s/ ~4 生成代码
/ [) V8 o* @$ Y; U2 W3 V
# Y" C4 Q$ t3 M# N4 C2 ~! F4.1 点击code-->C/C++ code--> build model
% `# _) P7 O8 K! S, b2 V
9 x& k; k4 `. [9 ~9 h & e' Q! t& b9 o$ K
) M7 ]2 {; @% S! ~* ^/ r
然后 出现了 report+ s$ P: g) Q: N3 @) V, J6 D# m

9 m' C# t3 J/ L# d5 x   ?: w+ j) x& F, r7 X5 t
0 v$ A4 |& ?5 {0 \4 n
下面 我们就可以回到stm32cubemx中进行程序的生成了
3 e+ n& a+ O, N8 H' Z8 Z4 A8 }9 J4 e; m3 G: q# _
4.2 在stm32cubemx中 点击 生成keil项目文件# l' }: l9 |9 p, D% m1 h5 D# C3 a
) N4 K. b! ?; A% z/ T! i' L8 Z, g
! A1 r) X) N: e# r- N+ ?

  ~8 Y; \1 i$ h  n% S* x1 O然后  直接打开 project . |, A$ O' ^5 P! a9 I  l8 W
% A0 c; h9 g/ l& J7 O7 t" i( V
首次编译  大家可能会遇到一个错误 4 G+ `/ G# I2 C/ |
! _" |; Q' E0 E7 t1 y

; y+ j  ]. O- h# e4 V) L9 c" G/ Z* `- O  t- R4 q9 P0 h
我们找到位置 将其注释掉 我们并没有用到它
+ w1 m5 [% ^$ ?3 b* b; ~: L' z9 }8 e# L$ @' b$ k

4 _3 o# a0 N8 F5 Y% E% h
( ]0 j  @6 N" U1 v5 u& W8 d; K然后就没有问题了# v9 d- |8 B! E! |1 q$ O( K5 T; T

4 L) Q( G" i9 f3 `  L) E接着便可以下载程序到我们的板子看灯的闪烁 效果见下图% j; s1 }1 W5 T& @1 I  _

' @3 C0 ~" e* M+ G
游客,如果您要查看本帖隐藏内容请回复

* D; C4 q% e- N( R/ j' k然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!4 I) P7 F7 W" E

+ b) I7 W) ?& u$ T  F8 b: e# v( v3 z

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享) b" l5 j2 i% A9 ]% a

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO, {" Z! W* `! D; u  d3 [; f
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享1 E; E: k5 v5 o3 s# |# d' {
  • 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 00:59 , Processed in 0.203125 second(s), 26 queries , Gzip On.

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

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

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