|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
使用MATLAB和Simulink开发STM32嵌入式应用/ G) V9 A) v9 g# r9 P1 Z
, z0 t* G+ H6 I2 ]) b
(一)Simulink和STM32Cube安装
6 P* m) g, P: o. x" [1、安装STM32-MATLAB Target,安装之后再simulink的library里面可以看到stm32的各种外设模块都已具备。
M( B6 i" ?6 o2 f4 I
% }1 I; Q9 w5 x4 S" i2、安装STM32Cube和STM32F4 Firmware,并按照Nucleo-STM32F446ZETx来配置IO引脚和外设。本工程使用了GPIO。% Z+ r3 ]. M- }( p
: g- u8 E$ H7 ~& Y1 X# o/ c _* x
$ T0 p; A# S9 `/ y6 S( s" ^9 q# u4 Z" @5 E n& ]0 [) v
3、配置生成IAR工程。% |, |( E0 S: P+ z, s
4 P; |$ `( t$ [1 ]* {7 t(二)simulink模型搭建与设置* x) i% X' H* c* k7 v$ Z% w* X
1、在simulink里面搭建模型如下,包含一个STM32_config,一个GPIO_Read并将Read值传递给GPIO_Write,同时在Simulink的Source里面选择一个Pulse Generator,同样将值传递给GPIO_Write。8 `5 }4 g& W5 U) n; d% @4 ]% n
2、选定mcu Config,设定为刚才在STM32Cube里面生成的ioc文件。6 U: d& L1 n* P2 r: A5 B; T
2 t6 Q p$ m3 L1 S$ h, \+ n6 O' M6 M9 a
! n% Z3 q9 I7 t7 ^) W) Y+ o: r2 J- V' W3、设置GPIO_Read为PC13,也就是蓝色的User Button的引脚。同时赋值给PB7,也就是蓝色的LED的引脚。) x [0 q j& f' C6 x5 E
) `# b& H( o7 K- L, G4 s, K3 @7 N) z2 d' {; u+ [! ?, {
; T* E$ x- w# W7 f% s) n
4、设置Pulse Generator的幅度,周期和占空比,并将输出赋值给PB14,也就是红色LED的引脚。8 D7 t7 j: z+ y! i
* w! ]. r @& w3 A) R
5、在simulink的Model Configuration Parameters里面设置如下:
0 e# ?+ G# D$ O- U
: M% _$ I" j0 [) N% u5 U6 W' i' y M# u6 t
6、之后点击Build Model,生成c文件等。
; }' D0 R3 m5 `! i
+ k* B9 m9 L+ K) i" [9 Z: F( g7 s! q! v7 W& S6 @; F% I7 L- ]# |2 x
(三)IAR设置、编译和调试
6 X+ m t8 j7 _1、在IAR中添加matlab组,并将matlab生成的C代码添加入工程中。可见simulink的模型已经正确转化成C代码。" Y! u1 L- J2 e1 F& O$ m* E
3、点击make、debug之后,即可调试运行。
, ?* V3 Y+ G) a+ y* D/ z |
|