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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2020-3-5 14:00 编辑
2 d5 _# b3 ~# F  E$ W# G. a! w) d0 {- V! a2 ^
本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行。
; x# B$ L4 \9 x( t. R9 @+ T) c6 A) \5 Z6 F5 s, D5 ?
1.首先是将MATLAB安装ST官方的STM32-MAT/TARGET开发库
& Y# O. M: W5 D5 m" a. o, y7 E
3 `8 n. ], R- [9 [( \" L3 S! |' U2.文章采用的是STM32F407VGT6最小系统 在 PB0 上接有一个LED灯(最小系统 硬件资源匮乏ing) 所以 我们打开stm32cubemx 进行项目创建
( s' K& z* U* C  x. l, P# l
/ U8 ?. l! [0 U/ r4 E2.1 将PB0 设置为输出
, L+ a& ~' l8 B! q# ^" ?1 ~; n; `  v7 D+ A
3 k$ Q/ T) M1 R% T. D+ P
0 I" D  T' Q. d+ w2 \4 @; c
4 g  `! B2 ?0 ~. t  f
2.2 我是使用的外部高速时钟HSE=8MHz  大家根据自己的板子将这里设置好) C* H4 }! ~4 x1 r! q! f$ _

- d/ |6 e% r% d* l5 G6 c, T
8 f; Z' T  ^3 ]6 W9 e; {1 z- B/ Q( P; P* L2 C4 u- j
2.3 我是使用的JLINK下载调试程序的 大家根据的自己的仿真器设置sys
2 S3 c% U) f+ M9 g4 r) J2 \: B% g# S/ ~+ o
' W+ u0 n7 J: F: |3 G

0 A2 [/ m+ b6 m) O( r" \2.4 这一步是我用到了串口 (这是习惯动作,此处大家可以不设置 因为我们只是点亮灯,和这个没有关系). I1 m! `% l8 F, \" p  y- \9 }
: R0 i) V2 p, A6 ~# t0 {
2 d; t( t; q  f' `& C8 V

7 [* d3 C9 F( f+ `( h8 T2.5 引脚分布查看(usart可以先不管)
/ h# W* d" }# o8 }) w, E8 ^  R7 ~4 p, [+ e% d. n2 Y
5 q; h5 r0 M8 _- I6 K1 U* r

8 ~/ F( g; S9 e# O+ m2.6 时钟配置 我是根据我8MHz的晶振配置的时钟 大家参考 % b: D3 p5 ^3 _5 v1 l: Z2 L
# Q3 h0 s+ r, e  [& ^8 i. D
5 J" ~3 W7 w% E& F
4 w6 L8 w* `  H0 Y: Y7 a* n

: v! [8 N7 u4 s! d' v+ `+ x/ ^) A* [" h" M; K8 e* |
2.7 GPIO配置  O5 H5 A  s+ K- w$ j# O2 G

* W3 w- ]: c! z4 X ( H# l; ^9 G; R! G
! ~. ^0 L7 q8 _( U
- g$ p7 k4 z+ @3 ^! I" ~

- ^) a6 y2 J" w& X配置结果见下图
  H; [9 i) B; ]4 N6 ]: a4 I- k& P% b/ x; E
# ^  e. z8 k- G
0 ?3 q5 C, d) g% n0 T
2.8 设置项目生成属性  我一般用的是keil5 大家根据自己情况设置 然后保存项目在自己设置的文件夹下(切记先不要生成keil项目文件 一会儿我们才要生成它)) `, H9 z; K% r0 ^0 g5 p$ l7 f

; ]8 {: e5 t1 S# u, r / u' Z# Y* x8 [- V; S: `

1 f5 T7 n& N& Q# ?3 下面进行simulink部分的设置
% h# k1 @" g6 ?: G
+ r0 z4 R7 @* p3 r: h% N6 ]2 L首先新建一个simulink  model文件 (我的是2018a的 大家根据自己MATLAB版本新建就好
# t8 \2 p" @! i# O
1 R- z( e  f2 ^9 f6 _6 N切记 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!! 该文件保存在之前ioc文件的同一个文件夹下面 !!!
" b- \& D4 Q( \& ^
/ b4 ]4 `& F4 `( G $ G9 e, |+ {7 P+ c$ R
9 v2 o8 t9 R  H* _5 C
3.1首先进行前期配置工作 此处要细心一步一步来
, s+ Q& ~! e) N. F5 s  a/ Y2 `2 K, b1 ]* P
打开设置 按照图片顺序操作
" p2 h6 T+ i) L1 q
+ y, N) H2 z/ ?" \5 I, h1 p
( m( |" D& r: I4 U, u: b8 X8 e+ f7 o6 ~' D

$ @+ B* t* D: o% I
4 K& ?1 e5 R& j: D 5 g; w4 O" q/ M
( p! f/ c+ y3 G" G

2 w( U3 m: m/ Z$ R. P0 i8 `* n5 B" _8 c$ C* ~

. _9 u1 M* f' B% P: ~4 N2 a" Z' T1 U7 ~: {
然后ok保存  每一步都很关键  不要遗漏   
4 A; L# m5 E  d( M' _/ J  [
6 Z" K3 Z4 m& L3 z5 |1 }6 P3.2打开simulink 选择 stm32 adapter   f; Y) D9 ?4 [7 ~

8 d, |8 v7 z" z. g) S* @ 6 Z% a* ?8 B) N

. ]  {% X! [: p选择config模块 见下图$ g  n  y! v) a+ w
% Z$ i; f. j4 E3 ]7 Y& ^0 }& U; g

# }/ [6 k# B4 O9 |! E
/ O# s9 n( z% z% I9 t- `将其拖到我们新建的model文件中 然后双击 配置我们之前stm32cubemx生成的ioc项目文件 配置过程见下图6 ~# ^0 B1 u, S5 d5 c- L

2 K; G1 j3 b0 \. b: X" Y 2 D& N) l/ G! p/ u5 M

* L. ?! }' Z( @* d( _ + j  W$ L' j. w" Q, U$ t1 F3 G% @

- T- {4 |% ]7 \( ?( [7 W, w% H然后ok就好了, {0 f8 c% m0 b$ M6 d, @
4 j! I% f( n; i5 k
3.3 添加GPIO7 ~3 u) N+ y9 R( J6 G8 \
" l/ Y! y( H+ u. K

2 A. j) N! r7 b4 K" C* x( E& f+ |9 ^" ~4 B% M: S. k
将此引脚write模块拖到model中 因为是输出引脚 这里是写操作 * B. _% u4 w8 c3 L+ a
) N2 s, h+ Q1 [2 P% L$ A! F+ Q7 ^
双击配置该模块 就是我们之前在stm32cubemx中设置的引脚  (当然 大家会发现 没有在之前配置的引脚是灰色的不能选择的)! @) u) a; v8 G# q2 w, a7 Y% q, x8 M; {

; i1 J$ b" |0 F" F# W  X$ [
7 j# a" d  V! _' Z# a* V1 C% ~, u  {/ w
3.4 最后添加一个脉冲源 配置如下
; ^$ F. s( L) p' q  t: c: b# n. H: ~+ n0 c; k& u
! P6 k: ]; v% M/ O/ q5 X$ @

1 D+ p* W4 U% t最后的图很简单 如下图
  u* H2 q' t% z$ B& Y! R. n
' g! z7 _: E  {0 W+ y 2 ~7 h/ ^, ]- E- Q) Y

4 b0 g/ T7 Y! P0 o# A1 R$ M" |下面就可以生成代码了  
& R* z5 Z6 A9 j& a  N1 G1 C
2 q2 I2 w1 E( w1 N' h* c% A1 e4 生成代码
3 B/ ]0 f. r0 g0 ~- @
6 I" F) k- l. s8 x7 l" ]4.1 点击code-->C/C++ code--> build model
, e" {3 e2 I) J# T' O; w: c0 |8 e
! ~' y; S3 p% z3 ?, c- R/ P- x
: Z! z, v! [7 p5 B) b/ }0 g* C( |5 ?% N6 \, ^
然后 出现了 report
1 `5 ]: B' M1 {2 n" f+ a' m9 T. C2 W6 l8 D" A
2 W1 C) o5 f+ x6 X+ ?- u& N* k

& P9 g; M6 C/ i. g* }  g! J$ r+ {下面 我们就可以回到stm32cubemx中进行程序的生成了
! s; J/ h+ Z3 _& X, ]7 u7 ^0 @, ^9 y( {9 y$ p$ n, r$ n
4.2 在stm32cubemx中 点击 生成keil项目文件
  K! j* w9 ^( h+ Z* v( `" D3 h& k. [  c! j7 G
, Q0 P- V/ i- b  o% L: ?

( Y/ f3 {9 q( L* ^' y5 F. j然后  直接打开 project 0 H! c3 B; h' _. D  s" [
9 |/ |5 \, z4 B3 i. B( i  M/ X
首次编译  大家可能会遇到一个错误 4 l2 b4 s, D& h8 t/ W
6 Q  t- u1 h3 \+ i
1 r5 ?4 E% P3 _! [; m
) f+ w% ~9 b5 u& r" Y! V/ B- ?
我们找到位置 将其注释掉 我们并没有用到它
) y9 N. H/ l# t- e( V- a8 l6 i
# p. D( |- f, p1 ]1 ~1 S
8 ^/ e. ?+ T* }! k2 L# {( S/ m4 c$ c' i9 x. O7 f2 i; y4 H2 X$ x+ N9 N& H2 {
然后就没有问题了
0 M- J5 S' j' Q: |! I( O7 o/ C# E0 C7 Y) }8 o3 [
接着便可以下载程序到我们的板子看灯的闪烁 效果见下图
; d( Q, F1 k3 `+ j# k5 A2 J$ S# D/ X2 z  x# n) s; u9 j5 T
游客,如果您要查看本帖隐藏内容请回复

) Q( i: x% j' g% ]. `然后整个工作就完成了  赶紧看看你的灯亮了没 亮了记得评论里回复哦!
$ U+ b# b7 l- r6 i
8 R  X; l$ |# {, @

该用户从未签到

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

该用户从未签到

3#
发表于 2020-12-3 11:47 | 只看该作者
感谢大佬分享* I% a" @# L3 e2 e

该用户从未签到

4#
发表于 2020-12-7 20:59 | 只看该作者
ZHENHAOZHENHAO; u: L; m3 `: m9 U- j& Z
  • TA的每日心情
    奋斗
    2022-10-13 15:25
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    5#
    发表于 2020-12-18 08:52 | 只看该作者
    谢谢分享,谢谢分享,谢谢分享) O# P. [) o& r) g& u$ b
  • 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-23 23:57 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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