一、在keil对应的工程文件的对应位置新建gpio.h和gpio.c文件;5 }; V* ?# p4 W: K i! p* j
- n9 u5 C7 r: t0 _5 a) y( l
二、编辑gpio.c文件;5 ]! z% V: n6 b0 y- l' S+ u3 W7 B
- #include "stm32f10x.h" //引用头文件
! h: ]2 t# o8 l( L# P% V - #include "gpio.h") `+ b( E. Q; P
- ( L g# I+ }- A5 W6 J' Y
- * K9 P" D* I: e' y, P' C) K4 b
- void GPIO_init(void)//对GPIO初始化,对PB5口初始化
5 } U1 o6 @9 d- P$ y0 v: @" N) d - {
( X$ j1 N" ^2 b, r" t7 S+ B - GPIO_InitTypeDef GPIO_InitStructure;+ T& L3 ?, r r% a' w
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
- V d0 V9 O2 V7 R8 g -
S( Q, K! n+ N/ h - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;: V/ W5 m6 w0 Q0 `
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置PB5为推挽输出;
7 Q; H# P s$ v Q - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
7 f" x; g2 N& z* ]6 P -
6 U+ ?# _% X( r: N9 h+ h: O - GPIO_Init(GPIOB, &GPIO_InitStructure);5 L4 ]. [; A* m8 R5 y6 {3 x
- ! T$ Z+ x9 G2 ~. I
- } 8 S. e6 ~- ~' T3 G4 M
- - ^ \1 A8 [0 N& y5 L/ e
-
, V9 @# T \. [. ?$ A& r- } - void GPIO_on(void)//PB5置1- [- s/ M- ^& U8 L1 @6 ~
- {
5 Q/ t2 G% ~/ b8 g" @. l& T4 K* F - GPIO_SetBits(GPIOB,GPIO_Pin_5);
, X7 D% y5 x, p' O0 O2 n: t - }
3 S4 [+ M3 n4 v: _2 h - 6 ?4 f: n3 J P) T; q6 w
- ) `! G; t( @5 i2 c1 T# k
- void GPIO_off(void)//PB5置0
% R! @+ W0 z3 e L: ?' G" L - { 6 ^8 m$ }! H! W9 O0 e: c
- GPIO_ResetBits(GPIOB,GPIO_Pin_5);' ^( u/ `' r3 J4 }& a0 b# w ?
- }
复制代码 * e; m9 d! j( S T1 @
三、在gpio.h文件中编辑;- #include "stm32f10x.h" v. P3 S" z; `1 V
- - t$ N: h( N2 t; A8 c- |
- #ifndef __GPIO_H( x. H+ r: u6 L8 G2 |7 r5 _9 r5 l9 y/ t/ b
- #define __GPIO_H , G2 n3 y4 V% K8 V6 r9 M
-
2 \. e& z2 Z! Z N: R2 e1 t( l" j - void GPIO_init(void);
+ @, N9 Q# o. `# R, P5 K. p - void GPIO_on(void);
/ F% ?4 {7 H# t+ l - void GPIO_off(void);5 u$ a' H: F6 R( N+ r
-
' D1 C' p, Q) n - #endif
复制代码
; s4 F! T- w; u! f& p( u; p- V s3 r9 J2 g$ M. l
四、在主文件main.c文件中运用即可;) |& o" W$ w# G# q; Z+ W7 m, R9 t
- #include "stm32f10x.h"
1 C" h' {0 H# _* d - #include "stm32f10x_it.h"- u+ k" t: [' U8 A% N2 _! ]! l
-
0 x$ G7 C$ ]2 Z - #include "gpio.h" p; s* h6 G( k( s/ b! d8 W
- #include "delay.h": S7 z: X( Q. s6 a* J/ y+ t% |; G
- 3 a2 O* E7 w t0 H7 G+ J
- int main(void)- m( n# H. g; P8 E, \4 Q" g# i, n
- {
% a, }+ o2 }, V0 s- ] - Delay_Init(); $ ?+ k: l$ ]. L( L- `1 {
- gpio_init();
- C. t/ X, [' X( n" C - ( y0 X% B( e2 I/ r: L
- while(1)
# C5 z! Z0 X2 p - {
) G3 d: G# L' [% f5 w& u. L - gpio_off();//置0,即GPIOD低电平
4 x& p6 f% i: @9 q - Delay_ms(2000);//延时( c" f2 ?- K, K6 m& ?" Q
- gpio_on();//置1,即GPIOD高电平8 g# [$ y$ e7 A" R. s: h1 h
- Delay_ms(2000);//延时
8 }3 l6 q( b# e; a, s+ e2 o; x - }
, _% Y+ K3 P" d - }
复制代码
) K d" [1 A$ i7 ^————————————————
& j4 ?7 M- t7 ` O' w" L版权声明:不想写代码的小妖精& a6 O6 q" {2 g5 L' N! Z) K
, B/ z0 ]% Y- R/ l! ~# h; E
- V! S+ L6 e9 D4 y |