一、在keil对应的工程文件的对应位置新建gpio.h和gpio.c文件;1 s( @" I5 a6 S
0 l1 r i6 _/ s二、编辑gpio.c文件;
2 Q( V1 x) R4 ?" ^; S- l, V& x- #include "stm32f10x.h" //引用头文件, p5 d0 Q) ?# {1 d9 n
- #include "gpio.h") I6 Q X$ I, \& Y% R
-
9 g: c. m# y# W2 x& S1 _ c - ! G( q7 W2 |9 g7 y2 y! x
- void GPIO_init(void)//对GPIO初始化,对PB5口初始化
: @- p$ R/ H3 |5 B3 C8 E+ X( e - {
, d- [! M' t# }: q2 @& h - GPIO_InitTypeDef GPIO_InitStructure;1 m7 X$ s' K9 [2 b: f6 ~7 ~
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);- a3 ^3 \/ V" }0 p Z% N1 I
-
! v0 r2 U/ D# N/ w- _5 ]2 ^# r - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
! [# L- B4 N3 _* m. e- N - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置PB5为推挽输出;1 |& ], R$ Z2 E1 _# n) [+ H
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;& w* j/ l6 c2 W) {3 G- Z( H
- 2 U- j1 j& B% q& z( Q2 ~
- GPIO_Init(GPIOB, &GPIO_InitStructure);( r2 u r. P9 y+ s9 f7 l5 M
-
+ O7 n5 W. P S' ]1 y$ M - } ( Q+ P1 v" h- R7 b5 t& R
-
& @! y# R# x9 D6 Q- P5 [ - 6 L8 H$ C9 d6 E) s S
- void GPIO_on(void)//PB5置1$ u" V+ r. S& }/ E9 L
- {
9 n$ g' W/ A. A - GPIO_SetBits(GPIOB,GPIO_Pin_5);
4 m9 w& Y( L6 p) y- {2 o5 ~# Q - }
6 A8 P0 A% S5 R; T - ' }8 I' g0 d% b @2 T/ B
-
4 ]# ]9 t$ W) _ - void GPIO_off(void)//PB5置0
! a3 Q3 \* K/ @$ F - { $ ~4 a5 b; J" @- X
- GPIO_ResetBits(GPIOB,GPIO_Pin_5);
' u- c3 u; S3 \. c7 c# C! w - }
复制代码
" w; \6 O8 E1 K! j, K- ]; Q三、在gpio.h文件中编辑;- #include "stm32f10x.h"
+ \- }# i1 T4 l8 [& ^ -
' i' S- r( k. O2 P7 y; E9 h! U- x, f - #ifndef __GPIO_H) k# O# i3 `; m/ Z% h6 U H
- #define __GPIO_H 9 ~: i+ n( o# ]. I4 o
- * y* s) g7 [1 `; J \
- void GPIO_init(void);% D9 V7 g5 Y& [& u1 Q! L( G
- void GPIO_on(void);
- A$ r W2 `/ [; M( S - void GPIO_off(void);4 ]! c! s2 r0 _ e$ ^
-
8 I4 s9 a( B" ^ - #endif
复制代码
4 C H) B5 j) O; l8 h" U3 E5 G; `. H" K3 a, r0 c, T1 B
四、在主文件main.c文件中运用即可;5 E: a, x! r: y, j0 p& G
- #include "stm32f10x.h"4 \$ {) s5 x. O4 y0 @
- #include "stm32f10x_it.h": }* }1 x! Z, ]* e+ v+ D
-
% [6 ~' f! A, T, H N - #include "gpio.h"
! d. i! U8 k) L) L9 n. } d - #include "delay.h"9 _% @5 k: g& E. a
- 1 ], J) G, a. w* K# l
- int main(void)5 k; H3 j- m" t3 @
- {3 |0 x+ H2 }/ h; z0 A+ y: K
- Delay_Init(); 7 U6 a% Y1 q, G0 O4 E
- gpio_init(); $ k- c) L* \# |
-
1 e+ l: L* }- \' H! Z- [: a8 Y1 A - while(1)
7 W3 v" X; s; }6 A) F - {
( g# p+ c c- W2 q4 Q - gpio_off();//置0,即GPIOD低电平
1 D) o, Z; W" V' p - Delay_ms(2000);//延时
: K. H5 a# y5 f+ t" o: j - gpio_on();//置1,即GPIOD高电平' z- |) s4 s9 [# x
- Delay_ms(2000);//延时
- Y; z* e1 x( c4 h( b* [! [' o - }
7 w; b3 \% z9 ~/ k) M - }
复制代码
$ M5 P: M# D4 x, K1 T/ R————————————————/ M' T' H; L4 W8 z- {
版权声明:不想写代码的小妖精
' c' b: K- p7 K6 _8 O; ~
8 h: g) w$ K* K1 E# u0 V' v( V& o) b9 V$ {' f7 E
|