|
概述 本篇文章主要介绍如何使用STM32CubeMX对红外波形进行GPIO输出,并LED显示。 3 e- g. j- ^+ T' o1 B
硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板:
! }8 [! i+ o6 a! F/ N ' o9 _0 e9 e4 i; \* d6 E' b
' z0 {( K7 ]+ X选择芯片型号 使用STM32CUBEMX选择芯片stm32f030r8,如下所示:
) P( L, l/ j8 o6 H( W
* x/ Q% I! D0 s k, F8 S0 {: I) X0 G# W
配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示:
- q6 s3 P: C$ }5 U/ T2 x9 F6 r* b ! _5 u' J1 b) ]: A4 l
+ I ~4 w! b6 f( i& I
配置时钟树 STM32F0的最高主频到48M,所以配置48即可:8 f: f1 \' \" `" k1 L+ Z
' S* u, S6 F: ?2 ~) F, q- b; y {8 Y2 z7 H
( R0 U; \1 h/ |串口配置 0左键点击需要配置的端口,选择GPIO_Output模式。这里我们配置的端口位PB10和PB11。
& M; y3 T; |+ ?5 Z) H $ E, s5 Z. E- l" @6 \! A
( u0 p9 J3 g* g* E* F( b配置完如下图所示。
3 S9 h: E- K# ~2 j: W/ `; x$ ^+ a/ h5 S; S% x
. J' W& Z7 W2 e1 e详细参数配置,如下图,完成后点击OK。
4 B; n& ^& I) l
; O0 ~1 A$ U. O( y* |
生成工程设置 注意在生产工程设置中不能出现中文,不然会报错。
& w1 V/ s* J' |* @ ' J6 B1 p% A0 `3 ]# Y
4 s7 {/ T9 s5 A
: g7 y. t9 ]4 M6 j- ~代码生成设置 最后设置生成独立的初始化文件:
5 [+ ~: R4 k* }( d- {8 i( k( n : |' Y* |" g$ B- D: X4 H
2 G% g7 C3 H8 A+ L+ M- Y: F0 T: |# [6 F& @0 `; ]
生成代码
; I" m" x4 H t% G
' c6 v2 Y: G: ~. A6 t配置keil% M4 ^ T) ?+ W
. s0 ?+ \% f; p1 c" o# _- z8 }/ {1 G" q6 @8 s( G
+ a3 v: l3 m( v4 F+ K* P 在main.c中的while中,设置LED亮灭情况:
0 o- S, Z3 J6 ~0 P$ W0 e- S. D - & E! N2 u; W @* N A4 c
- /* USER CODE BEGIN WHILE */
2 F: b$ J7 k2 q y5 X1 |( o7 q3 X - while (1)+ I& j, w* g% X3 s( M* g
- {
1 c( P: ?$ S" n" b - 9 y' A0 g. f# H/ Q5 i. J7 ^" X
- //Bit_RESET/Bit_SET,实际上也就等价于0/17 G* B! i, a9 h: a2 k6 | Y; P, V
- HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_RESET);# @. _2 Y5 p q: G" z" G; ?. E, X
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET);* T& N0 N; u' t8 F) ? ^# ?5 \/ v3 n
- HAL_Delay(1000);
: v/ [: X8 t: V3 V' M: x7 M - HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_SET);5 H- k5 J- N3 W. z6 `
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET);' B3 M' Z$ r# d) X3 ]) o9 T% M
- HAL_Delay(1000);
" T& B( A6 x& J1 G8 ?6 x$ d" { - /* USER CODE END WHILE */
3 j% J' `. D7 h1 F( s! V - ) M' S% [& L% R5 U8 |; @* r
- /* USER CODE BEGIN 3 */
1 @$ y( N( }+ a& P4 u8 G, c - }/ s1 z( Y+ U) u+ q- x: J( K$ f7 k
- /* USER CODE END 3 */, X' q; k. n1 G/ U) r' g/ G
复制代码
7 _' e3 m4 K% V- `0 r演示效果 R8 a. a" ]$ F) W
& {8 z* B+ g; E* o0 G; s. [6 [/ u |