| 
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
使用MATLAB和Simulink开发STM32嵌入式应用 
: F; y- U0 f* P6 [) A' H$ R5 F! ]& w% W# h# T 
(一)Simulink和STM32Cube安装& R3 j; s5 O% U1 t7 g 
1、安装STM32-MATLAB Target,安装之后再simulink的library里面可以看到stm32的各种外设模块都已具备。) }" e4 n4 @. D# f" \3 n/ N+ Z2 x 
 
7 q: [# R9 E  m1 K+ D/ G& O) D! O2、安装STM32Cube和STM32F4 Firmware,并按照Nucleo-STM32F446ZETx来配置IO引脚和外设。本工程使用了GPIO。 
0 r& N2 Q. A# L5 z1 v' i5 h3 q  ~' R- p 
 
) c/ l( S9 T: a$ v$ J/ ]0 B/ i1 }: h5 ?- w% n% q 
3、配置生成IAR工程。 
4 W7 W% P) N  f8 E9 p9 ?) r8 A6 V4 l$ v/ ^" N8 B6 w) z4 M, L$ E 
(二)simulink模型搭建与设置 
4 f. a9 [6 W) J6 P9 M% B1、在simulink里面搭建模型如下,包含一个STM32_config,一个GPIO_Read并将Read值传递给GPIO_Write,同时在Simulink的Source里面选择一个Pulse Generator,同样将值传递给GPIO_Write。 
0 S8 K% u& I* d3 W2、选定mcu Config,设定为刚才在STM32Cube里面生成的ioc文件。* Y/ C: L& x; @9 i# J& l$ F% K9 @: g 
 
( p+ M4 @( @; O' Q8 h# s 
& U1 l9 `* y) G7 ~) \/ j% B2 g, C/ A3、设置GPIO_Read为PC13,也就是蓝色的User Button的引脚。同时赋值给PB7,也就是蓝色的LED的引脚。 
4 |: ]) Y- k( C% k2 X, \7 g- x8 |1 H- Z% I6 V% {9 q4 z 
 
0 P! f, S2 d( a8 }$ {) h, D* A3 v' C3 @  w# q! D 
4、设置Pulse Generator的幅度,周期和占空比,并将输出赋值给PB14,也就是红色LED的引脚。" Y/ [* H6 s& y/ ~ 
 
6 u( c1 r  u8 X- v5、在simulink的Model Configuration Parameters里面设置如下: 
$ |* s2 V. R* L# A2 Z9 h9 P* o! [3 h" Q, t9 P. j) `5 ~ 
, n3 p6 w: [' E. Z# V. [ 
6、之后点击Build Model,生成c文件等。 
! l0 S5 i* m7 l- ?' L" w5 Y' |5 @2 p5 q* v! d  K) Y! ~ 
6 A4 g- o; ~0 Q! f) r 
(三)IAR设置、编译和调试 
+ ]5 u  [& w9 o* M, v1、在IAR中添加matlab组,并将matlab生成的C代码添加入工程中。可见simulink的模型已经正确转化成C代码。) v2 g) V) u. j9 u6 q) f- b3 Q7 n 
3、点击make、debug之后,即可调试运行。/ L. ~# f, W% l8 m 
 |   
 
 
 
 |