学习32第一个程序就是点亮led灯。本人用的是野火的指南者开发板。先上电路图。0 L: s6 R# N7 Z' Q
* H2 C; B6 s9 L$ Z! S
7 G# i, [3 G& Q5 D- h; B' g5 \ A0 G4 P. l6 [# K6 v) F7 H/ b
如图所示,为led模块电路图,由图可知,此模块为共阳极。只需将引脚变成低电平即可使led灯亮。此次代码点亮B0。代码如下。8 e5 x' r) g8 ~+ k/ y+ W
$ C" `! K5 P/ p. kstm32要进行引脚初始化,led.c文件中定义如下:3 x6 ^, F* r: K# ]5 P
' Q# x$ U$ p! J) @. E5 a* U( r
- #include "led.h"8 M; P2 m6 ]2 f$ C4 C+ e
- void LED_G_Init(void)//初始化灯/ `& s; l, ?- M! ]4 }* P( F3 Y! P
- {
* b9 ^; U" c3 q - GPIO_InitTypeDef GPIO_InitStruct;//结构图定义4 t; M2 \2 W! a! V+ n6 @9 c
- RCC_APB2PeriphClockCmd(LED_G_CLK,ENABLE);//总线2时钟开关7 r, `4 K* J4 y" u8 o$ t
- GPIO_InitStruct.GPIO_Pin = LED_G_PIN;//引脚
3 n- O+ s7 {: j, V- r- g - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//模式为推挽输出$ |# r4 D+ `7 a! `, m5 |
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置频率为50HZ$ G& t8 |; L+ D3 o4 }- o* ?* o
- GPIO_Init(LED_G_PORT, &GPIO_InitStruct);//GPIO初始化0 x! L/ z) t- P: s
3 j: k( R! K& b; O, t- }
复制代码
4 \2 B6 G$ w* M- J) V每使用一个引脚都需要将GPIO进行初始化。
6 E, S& N. d/ m" m3 J1 f, H; C8 V: k5 x% A! N
头文件代码如下:
* k. H& a* J4 {& c
1 F5 B2 L% A. ?0 {" h/ E- #ifndef _DSP_LED_H
) Z& a( _) V- u2 X8 S. } - #define _DSP_LED_H
* y# a- k" p; i8 a- }: n
$ Q% R4 L( z: J) z. U- #include "stm32f10x.h"
2 Y" J' v$ ^1 a( V - # S$ D {& \, ?1 e& r: `8 c3 S3 ~
- //定义led灯端口1 _, h& P1 r7 R. A% e$ P* }
- #define LED_G_PIN GPIO_Pin_0: q9 \' q Y8 u h S0 V
- #define LED_G_PORT GPIOB
, h. R: _8 u6 L8 `' L6 g - #define LED_G_CLK RCC_APB2Periph_GPIOB
( l. M- B1 a8 @ |6 O$ P
6 {. J; m) ?7 o) T9 q- //初始化灯
. H" i4 s' }8 s; E - void LED_G_Init(void);9 O. d) @! Y1 E; d/ _- k' }
- $ ^% q, ^. `. k( z& Q- R
- #endif /*_DSP_LED_H*/
复制代码 7 N' R" W% _( T* n3 i4 r5 S1 t/ n
上面就已经将led灯初始化完成了,现在编写主函数:
( j U! V7 Z5 X6 e- J9 H& [& k$ ?
- int main(void)! [9 A# |; G* d7 X% | i3 N7 ~! Q
- {
6 L# U1 c3 |9 Z% M: q
2 E2 q7 N/ U- [+ U1 c- LED_G_Init();//初始化调用
% O0 Y$ {( L# Q- D2 W - GPIO_SetBits(GPIOB, GPIO_Pin_0);//因为初始化使GPIO会初始化为低电平,所以如果不是点评增高,led灯会直接变亮。所以调用此函数,使其电平变高。
! G: q9 A- {3 z - GPIO_ResetBits(GPIOB, GPIO_Pin_0);//电平为低,点亮灯,这两个函数都是在32库里面的,可直接调用。4 {$ X' Q1 y$ {; k
* e" w" B9 {8 W2 `! H- }
复制代码
# d2 e/ Z0 |& I" w- O F以上就可点亮一个灯了。虽然不是很难,但刚开始学习使用时因为接触到寄存器的配置,比51还是难很多的,新手还是会迷。2 Q7 k+ N1 I% W8 d. @% W6 T3 ?
————————————————
/ j* o: L( y* ]* w6 @版权声明:小柳很菜
2 {# C! q) L) Z/ x* F* G$ B6 E8 ]' h$ o$ O' {
|