|
概述 本篇文章主要介绍如何使用STM32CubeMX对红外波形进行GPIO输出,并LED显示。 $ V' t* p" \. _9 ^5 m% y& p) r
硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: 6 w% P4 J: `; ~/ I; Q
2 N* ~. J) k. i1 K+ F
' Z- l J1 m3 L" ?( E+ m: k$ O Y选择芯片型号 使用STM32CUBEMX选择芯片stm32f030r8,如下所示:
8 e# M. ~' u) l
3 y/ A# c/ x4 W5 {2 ^8 X8 V
配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示:
+ A% n; U6 K/ f+ X
1 S4 w, {& Z2 D
6 X* V$ P+ Y1 Y5 Y1 Z 配置时钟树 STM32F0的最高主频到48M,所以配置48即可:) ]3 ]# g6 k6 i+ x* ?
f1 v" ]* n- [3 R+ w4 L5 ~9 {. g2 h: B9 T2 |0 Q4 Y1 Q
: C* @8 I& ]2 z+ T% ^6 P; k串口配置 0左键点击需要配置的端口,选择GPIO_Output模式。这里我们配置的端口位PB10和PB11。
* |$ H* D3 D- `- v( G$ W; x
% k8 `, a. u( N: y5 X2 n( J9 o* d$ }7 r
配置完如下图所示。 & @8 _$ j2 | U2 m/ E
, i/ D8 P/ \9 I: j
3 e/ [' L3 B9 }8 T, d, N. z详细参数配置,如下图,完成后点击OK。
( g$ M0 u4 Y- D) k1 g0 O
4 a9 G% l$ T8 g+ A# p0 ?* L2 ] 生成工程设置 注意在生产工程设置中不能出现中文,不然会报错。
* N: X# I/ @1 V. R8 N7 Q6 |$ |2 m " F2 p4 k& i! v) U/ H& t* E
8 d3 O1 P3 ~: R, C5 ]+ A7 _& }! Q) J9 ^3 _4 D7 \: |
代码生成设置 最后设置生成独立的初始化文件:4 B7 N# p( O: M X3 w0 f. X
r! {3 m( _- f8 {7 D3 @7 y
+ L+ A/ D) C2 S y' y, B* R6 g: g3 v4 A3 O' p8 R' S$ B* L/ j1 s1 j
生成代码2 w( S: v8 j, |" x- ~, ^, ^
# t/ c3 f( Q" q0 x) H; Y, d
配置keil
) K) Z5 {+ b p1 t8 y; g) H# g
* N7 R) X! o/ w
! b; e5 o/ {# p& m- F9 F
# i# M( m: t9 C$ Y2 ?8 ` 在main.c中的while中,设置LED亮灭情况:
. y3 ?7 K+ C% N; H
1 S. S% x, ~8 O9 J5 r I8 b9 n- /* USER CODE BEGIN WHILE */
3 q% C- D0 e7 k5 T4 t k - while (1)2 s; Y' l% V/ N" O2 ?
- {
& z9 ^& `* V3 q+ a7 O5 O4 P# o% |
' j! i# z2 C2 s6 E! n- //Bit_RESET/Bit_SET,实际上也就等价于0/1; g1 T M0 L- c+ I9 {& @
- HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_RESET);4 P- `+ \- U8 F* I4 V/ ]
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET);5 Y7 d9 D' ^# s6 X& y/ x
- HAL_Delay(1000);9 ^7 R4 I) |# f" d3 f) M9 X) D
- HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_SET);
5 b4 Q4 c. E0 ]) m: Z [ - HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET);5 a& w* D! U8 D N5 H/ ^7 X* j
- HAL_Delay(1000);( x- I ]7 e" C- B. ~
- /* USER CODE END WHILE */
/ l" B; F9 x& x$ }8 o7 r. P. _% s
0 @) }( `$ P( q/ I2 M; A) i- /* USER CODE BEGIN 3 *// y2 A0 ^! E& j; }; }* |: j9 S3 m
- }
# A+ K, `9 |; n, V) U: f8 d - /* USER CODE END 3 */
1 L) b L. D7 o
复制代码 . i9 ^2 ~1 q/ N4 ]) C; U2 d
演示效果 $ w# d) J7 k+ B: \$ F i9 X! v
6 H) B8 F8 Y. w1 x9 ? |