STM32的LED控制图7 G3 X3 p% J% _9 A) l" |
* }" j9 W4 J) K4 f9 o5 O
& T1 U; `" ~. R+ t8 `' f
% p$ B4 W# |/ l/ d2 e! {: S( h led灯电路如上,PB0=8,小灯点亮7 _5 s" r$ A7 n3 r. v4 `) z) N
) g& N/ e4 c; o, d1 ]点亮小灯分为3个步骤' J3 c' C ]# r8 V7 O) A8 G3 b! E6 ^
) ?$ {( I6 C1 u4 N* ^. Z I
1.使能GPIOB的时钟
# V5 G: f2 A! H$ p3 u+ `
7 G L A/ W9 @5 [+ n! ?( S) F2.将PB8引脚配置为输出引脚% ]- R7 ~ |0 |! i. v+ u r* Q
, t" m Y' ? W0 c a- [
3.电平置零,点亮led小灯3 e% u) u! D. \5 a! f
, \' ^# | _4 `7 S1 V代码如下(详细的注释在里面); H0 D0 c" Q- g0 D
( a1 p- u- M% g3 G& D
前面的代码不用特意去背,初学者会认即可,随着以后的学习就会有更深刻的理解
2 b. l2 G5 P% w) R3 m @# c, O. x- ^" m+ N( ^: E
- #include "stm32f10x.h"' {& Z% V. [ k" @# w
' H# h* A% J& a1 Z- int main(void)
4 l1 _) n4 d [( r7 w# y - {
. r- c7 N \" y: { - GPIO_InitTypeDef GPIO_InitStructure;
0 ?9 d& P& K+ n% M: C3 ^9 [+ e - RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB时钟5 i8 U" Q# u X5 m% O. X5 D9 J5 h; h
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PB8引脚配置
/ m; j' _2 a9 m, g: S - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置PB8为推挽输出
% ^8 D/ |& I4 P3 x/ g4 N. _ - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIOB速度为50MHz9 {+ ]9 e' P4 K9 Z
- GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB8* A8 Y2 _! P# X0 J
- GPIO_SetBits(GPIOB,GPIO_Pin_8); //PB8输出高电平,LED熄灭6 w+ u/ F0 H5 Y+ X U' B
O) o+ i( G' T( j- while(1)
b! y1 o6 F. k7 j; S. i - {
/ {8 K# ?8 Z! }0 E- h5 ? - GPIO_ResetBits(GPIOB,GPIO_Pin_8); //PB8输出低电平,LED点亮
& B5 C) F% u1 S - }- h4 c+ E4 }. X! w# }
- }
复制代码
2 @% q( E% R% v9 s; _1 _, H$ p- L3 O- f/ N6 a$ E6 c
# L; N3 B! }0 @" L1 j4 ^* `' I& _ ~1 E5 V3 X
5 D' L+ a+ M9 m
|