STM32的LED控制图
# _. z+ x( s) X. E# k
+ H: V: r1 @" [" X+ H6 q$ T
/ }8 J9 q4 B* y
! Q4 S1 d8 W- F- `$ B led灯电路如上,PB0=8,小灯点亮
E" K- ^' r& B7 w( Q& ^, q$ i0 E8 ~3 u$ {
点亮小灯分为3个步骤
& R. [' G/ }! e+ G
& O0 c) V5 \ Q/ T* w2 J/ \! u1.使能GPIOB的时钟. J& W: y2 H5 D0 V# {
; A- y( z2 Q7 u) {2.将PB8引脚配置为输出引脚
8 D/ o9 ]% H+ h9 R' n7 e- P
# \6 b, s/ Z/ a" X5 C8 ^5 @3.电平置零,点亮led小灯5 } g6 {6 [, V7 v4 ?+ n, @
' ]. D) g' P* y$ S: X8 s9 N) a代码如下(详细的注释在里面)
% @( n, C1 }8 l
0 S9 }4 b# T- e% x& b3 l) w前面的代码不用特意去背,初学者会认即可,随着以后的学习就会有更深刻的理解
0 j" C+ M2 @; g# w& I4 V: A4 w
$ Y6 G; \) F% X. ]+ }9 e% T3 q" I- #include "stm32f10x.h"8 y7 W0 j$ E+ k+ H
$ j1 [! ]) g+ l9 {- int main(void)/ V. y* M3 F N0 S9 H$ n. o% F3 C8 T
- {" p( k6 E$ [. L, z# s; `- V
- GPIO_InitTypeDef GPIO_InitStructure;
4 d+ I- C v5 z" h) o+ K - RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB时钟- f1 X) I8 o) X5 g
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PB8引脚配置9 o1 p$ u7 F. p$ s
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置PB8为推挽输出3 i8 {) O3 T% b V$ z
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIOB速度为50MHz. r2 j7 {0 e! E0 [
- GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB8' e Z: y% n- V2 J2 x7 C7 h1 N
- GPIO_SetBits(GPIOB,GPIO_Pin_8); //PB8输出高电平,LED熄灭
# b7 P( P8 ]! g. r - 8 O+ _3 T. x) X0 f; C
- while(1)1 A( E3 m8 U& d
- {
$ ]5 @6 Q6 W1 P# J8 C" X; Y - GPIO_ResetBits(GPIOB,GPIO_Pin_8); //PB8输出低电平,LED点亮
! s6 U# p- H6 `2 U4 W, p - }9 ]- c% Y/ U1 P0 l; J7 g K$ A
- }
复制代码 5 T7 f; w* W; S0 j/ R
0 d# R6 \; @ t* Y0 {; u0 q( ?/ p. T0 v/ `4 K
8 b4 N7 E0 ]% P# {) s4 {( j
/ w+ r% J* G& _. ]% Y$ X' P% H0 V |