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

STM32配置GPIO的高低电平

[复制链接]
STMCU小助手 发布时间:2023-2-5 22:14
一、在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
  1. #include "stm32f10x.h"    //引用头文件
    ! h: ]2 t# o8 l( L# P% V
  2. #include "gpio.h") `+ b( E. Q; P
  3. ( L  g# I+ }- A5 W6 J' Y
  4. * K9 P" D* I: e' y, P' C) K4 b
  5. void GPIO_init(void)//对GPIO初始化,对PB5口初始化
    5 }  U1 o6 @9 d- P$ y0 v: @" N) d
  6. {
    ( X$ j1 N" ^2 b, r" t7 S+ B
  7.   GPIO_InitTypeDef     GPIO_InitStructure;+ T& L3 ?, r  r% a' w
  8.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    - V  d0 V9 O2 V7 R8 g
  9.        
      S( Q, K! n+ N/ h
  10.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;: V/ W5 m6 w0 Q0 `
  11.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //设置PB5为推挽输出;
    7 Q; H# P  s$ v  Q
  12.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    7 f" x; g2 N& z* ]6 P
  13.        
    6 U+ ?# _% X( r: N9 h+ h: O
  14.   GPIO_Init(GPIOB, &GPIO_InitStructure);5 L4 ]. [; A* m8 R5 y6 {3 x
  15.         ! T$ Z+ x9 G2 ~. I
  16. }       8 S. e6 ~- ~' T3 G4 M
  17.    - ^  \1 A8 [0 N& y5 L/ e

  18. , V9 @# T  \. [. ?$ A& r- }
  19. void GPIO_on(void)//PB5置1- [- s/ M- ^& U8 L1 @6 ~
  20. {
    5 Q/ t2 G% ~/ b8 g" @. l& T4 K* F
  21.   GPIO_SetBits(GPIOB,GPIO_Pin_5);
    , X7 D% y5 x, p' O0 O2 n: t
  22. }
    3 S4 [+ M3 n4 v: _2 h
  23. 6 ?4 f: n3 J  P) T; q6 w
  24. ) `! G; t( @5 i2 c1 T# k
  25. void GPIO_off(void)//PB5置0
    % R! @+ W0 z3 e  L: ?' G" L
  26. { 6 ^8 m$ }! H! W9 O0 e: c
  27.   GPIO_ResetBits(GPIOB,GPIO_Pin_5);' ^( u/ `' r3 J4 }& a0 b# w  ?
  28. }
复制代码
* e; m9 d! j( S  T1 @
三、在gpio.h文件中编辑;
  1. #include "stm32f10x.h"  v. P3 S" z; `1 V
  2. - t$ N: h( N2 t; A8 c- |
  3. #ifndef __GPIO_H( x. H+ r: u6 L8 G2 |7 r5 _9 r5 l9 y/ t/ b
  4. #define __GPIO_H , G2 n3 y4 V% K8 V6 r9 M

  5. 2 \. e& z2 Z! Z  N: R2 e1 t( l" j
  6. void GPIO_init(void);
    + @, N9 Q# o. `# R, P5 K. p
  7. void GPIO_on(void);
    / F% ?4 {7 H# t+ l
  8. void GPIO_off(void);5 u$ a' H: F6 R( N+ r

  9. ' D1 C' p, Q) n
  10. #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
  1. #include "stm32f10x.h"
    1 C" h' {0 H# _* d
  2. #include "stm32f10x_it.h"- u+ k" t: [' U8 A% N2 _! ]! l

  3. 0 x$ G7 C$ ]2 Z
  4. #include "gpio.h"  p; s* h6 G( k( s/ b! d8 W
  5. #include "delay.h": S7 z: X( Q. s6 a* J/ y+ t% |; G
  6. 3 a2 O* E7 w  t0 H7 G+ J
  7. int main(void)- m( n# H. g; P8 E, \4 Q" g# i, n
  8. {
    % a, }+ o2 }, V0 s- ]
  9.   Delay_Init(); $ ?+ k: l$ ]. L( L- `1 {
  10.   gpio_init();  
    - C. t/ X, [' X( n" C
  11. ( y0 X% B( e2 I/ r: L
  12.     while(1)
    # C5 z! Z0 X2 p
  13.     {
    ) G3 d: G# L' [% f5 w& u. L
  14.         gpio_off();//置0,即GPIOD低电平
    4 x& p6 f% i: @9 q
  15.         Delay_ms(2000);//延时( c" f2 ?- K, K6 m& ?" Q
  16.         gpio_on();//置1,即GPIOD高电平8 g# [$ y$ e7 A" R. s: h1 h
  17.         Delay_ms(2000);//延时
    8 }3 l6 q( b# e; a, s+ e2 o; x
  18.     }
    , _% Y+ K3 P" d
  19. }
复制代码

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

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版