你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32配置GPIO的高低电平

[复制链接]
STMCU小助手 发布时间:2023-2-5 22:14
一、在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
  1. #include "stm32f10x.h"    //引用头文件, p5 d0 Q) ?# {1 d9 n
  2. #include "gpio.h") I6 Q  X$ I, \& Y% R

  3. 9 g: c. m# y# W2 x& S1 _  c
  4. ! G( q7 W2 |9 g7 y2 y! x
  5. void GPIO_init(void)//对GPIO初始化,对PB5口初始化
    : @- p$ R/ H3 |5 B3 C8 E+ X( e
  6. {
    , d- [! M' t# }: q2 @& h
  7.   GPIO_InitTypeDef     GPIO_InitStructure;1 m7 X$ s' K9 [2 b: f6 ~7 ~
  8.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);- a3 ^3 \/ V" }0 p  Z% N1 I
  9.        
    ! v0 r2 U/ D# N/ w- _5 ]2 ^# r
  10.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    ! [# L- B4 N3 _* m. e- N
  11.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //设置PB5为推挽输出;1 |& ], R$ Z2 E1 _# n) [+ H
  12.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;& w* j/ l6 c2 W) {3 G- Z( H
  13.         2 U- j1 j& B% q& z( Q2 ~
  14.   GPIO_Init(GPIOB, &GPIO_InitStructure);( r2 u  r. P9 y+ s9 f7 l5 M
  15.        
    + O7 n5 W. P  S' ]1 y$ M
  16. }       ( Q+ P1 v" h- R7 b5 t& R
  17.    
    & @! y# R# x9 D6 Q- P5 [
  18. 6 L8 H$ C9 d6 E) s  S
  19. void GPIO_on(void)//PB5置1$ u" V+ r. S& }/ E9 L
  20. {
    9 n$ g' W/ A. A
  21.   GPIO_SetBits(GPIOB,GPIO_Pin_5);
    4 m9 w& Y( L6 p) y- {2 o5 ~# Q
  22. }
    6 A8 P0 A% S5 R; T
  23. ' }8 I' g0 d% b  @2 T/ B

  24. 4 ]# ]9 t$ W) _
  25. void GPIO_off(void)//PB5置0
    ! a3 Q3 \* K/ @$ F
  26. { $ ~4 a5 b; J" @- X
  27.   GPIO_ResetBits(GPIOB,GPIO_Pin_5);
    ' u- c3 u; S3 \. c7 c# C! w
  28. }
复制代码

" w; \6 O8 E1 K! j, K- ]; Q三、在gpio.h文件中编辑;
  1. #include "stm32f10x.h"
    + \- }# i1 T4 l8 [& ^

  2. ' i' S- r( k. O2 P7 y; E9 h! U- x, f
  3. #ifndef __GPIO_H) k# O# i3 `; m/ Z% h6 U  H
  4. #define __GPIO_H 9 ~: i+ n( o# ]. I4 o
  5. * y* s) g7 [1 `; J  \
  6. void GPIO_init(void);% D9 V7 g5 Y& [& u1 Q! L( G
  7. void GPIO_on(void);
    - A$ r  W2 `/ [; M( S
  8. void GPIO_off(void);4 ]! c! s2 r0 _  e$ ^

  9. 8 I4 s9 a( B" ^
  10. #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
  1. #include "stm32f10x.h"4 \$ {) s5 x. O4 y0 @
  2. #include "stm32f10x_it.h": }* }1 x! Z, ]* e+ v+ D

  3. % [6 ~' f! A, T, H  N
  4. #include "gpio.h"
    ! d. i! U8 k) L) L9 n. }  d
  5. #include "delay.h"9 _% @5 k: g& E. a
  6. 1 ], J) G, a. w* K# l
  7. int main(void)5 k; H3 j- m" t3 @
  8. {3 |0 x+ H2 }/ h; z0 A+ y: K
  9.   Delay_Init(); 7 U6 a% Y1 q, G0 O4 E
  10.   gpio_init();  $ k- c) L* \# |

  11. 1 e+ l: L* }- \' H! Z- [: a8 Y1 A
  12.     while(1)
    7 W3 v" X; s; }6 A) F
  13.     {
    ( g# p+ c  c- W2 q4 Q
  14.         gpio_off();//置0,即GPIOD低电平
    1 D) o, Z; W" V' p
  15.         Delay_ms(2000);//延时
    : K. H5 a# y5 f+ t" o: j
  16.         gpio_on();//置1,即GPIOD高电平' z- |) s4 s9 [# x
  17.         Delay_ms(2000);//延时
    - Y; z* e1 x( c4 h( b* [! [' o
  18.     }
    7 w; b3 \% z9 ~/ k) M
  19. }
复制代码

$ 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
赞 收藏 评论0 发布时间:2023-2-5 22:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版