学习32第一个程序就是点亮led灯。本人用的是野火的指南者开发板。先上电路图。. c: G; Q9 d6 R: ]" M; x9 [* R9 k
0 J' k j7 y& b% Q3 W& J' L
' b0 b+ v1 E7 w0 W4 ~# m3 u
S: P) ~( X8 g& b8 ^如图所示,为led模块电路图,由图可知,此模块为共阳极。只需将引脚变成低电平即可使led灯亮。此次代码点亮B0。代码如下。$ Q0 v+ g. f1 y: h8 P( `% Y
) q6 H8 O1 X! w* q4 P( Y
stm32要进行引脚初始化,led.c文件中定义如下:0 a* E4 r0 E3 v: W- @
! p# i# Y' R4 ^6 {, n! U6 z) F$ o9 ]- #include "led.h"
4 D6 ~, {: e" @7 x - void LED_G_Init(void)//初始化灯8 \1 O& q8 u3 R
- {
. |. N" i: b& u% ] - GPIO_InitTypeDef GPIO_InitStruct;//结构图定义$ s2 b$ v- I1 P1 r) c! o
- RCC_APB2PeriphClockCmd(LED_G_CLK,ENABLE);//总线2时钟开关
) ^7 K0 `: V( {7 v9 D. ` - GPIO_InitStruct.GPIO_Pin = LED_G_PIN;//引脚% g$ i8 ?# P$ S2 \+ F+ e
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//模式为推挽输出
( Z/ _# k% g* n5 l - GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置频率为50HZ& i7 s& d- W- g: @6 u
- GPIO_Init(LED_G_PORT, &GPIO_InitStruct);//GPIO初始化
$ g9 [* Q4 E2 x0 E( ^ - 0 J3 y8 s- W1 s( n5 i
- }
复制代码
( U4 j) r% w! P, Y+ L5 O每使用一个引脚都需要将GPIO进行初始化。2 h$ O! u1 t9 P
( X/ _2 `( B/ h2 T6 p3 |6 u
头文件代码如下:- P+ w7 r0 [6 B
7 c+ Q- Q+ \% m7 l, A: L* ?/ K5 G
- #ifndef _DSP_LED_H R, A1 U- A8 M- v8 I# P! n2 L
- #define _DSP_LED_H5 F; u. X# L. B/ x4 p% B0 ?
2 ^' U/ y: [9 I7 c, ^- #include "stm32f10x.h"
5 t3 t) i: G- E2 T
! p, a, }+ \. i- F% S- //定义led灯端口+ m; X2 a0 f( `
- #define LED_G_PIN GPIO_Pin_0% L9 t. X2 S7 s) g
- #define LED_G_PORT GPIOB
" e! \5 l4 j% F - #define LED_G_CLK RCC_APB2Periph_GPIOB+ i7 L: t' b* f) Q
X8 s9 x3 t4 {: b$ e5 v' n3 T- //初始化灯7 Y' h5 h6 i( X5 E
- void LED_G_Init(void);
: g# c8 M* E% |
' V3 b+ X( u0 q9 v8 `" m6 Z- #endif /*_DSP_LED_H*/
复制代码
/ T0 y3 V2 B" ]4 \! V上面就已经将led灯初始化完成了,现在编写主函数:
1 B8 G4 f( w0 y; m$ H; C
1 r% L: ]+ I1 w8 _( d2 W. ]. B- int main(void)3 a. j( S; }- G; j/ H: c3 S$ `
- {6 ]+ k8 z+ ]( Y' s
: U9 Z4 X. \/ O0 f. E- LED_G_Init();//初始化调用( D, G) f" S: }/ W7 r; x+ [, ]
- GPIO_SetBits(GPIOB, GPIO_Pin_0);//因为初始化使GPIO会初始化为低电平,所以如果不是点评增高,led灯会直接变亮。所以调用此函数,使其电平变高。
; M- u, O' Z9 Z* f$ K6 A; ~5 l - GPIO_ResetBits(GPIOB, GPIO_Pin_0);//电平为低,点亮灯,这两个函数都是在32库里面的,可直接调用。3 b+ x; V( ^7 Y& l3 v+ H5 s
- ( V' R# |, V9 R! O2 |, ~- n
- }
复制代码 + Q: C% N3 _& }, s8 F6 B
以上就可点亮一个灯了。虽然不是很难,但刚开始学习使用时因为接触到寄存器的配置,比51还是难很多的,新手还是会迷。. s8 x! \: G2 ^
————————————————
1 ?6 ?+ c- x O( b) c版权声明:小柳很菜
$ ]: q# n( @$ A* X# b& R$ A% i! t1 a9 a; [) V, W
|