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

【经验分享】stm32f0_GPIO

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
GPIO口
+ s+ J: w4 u) u6 z
, z' f$ m! e' X' G介绍:
, E( h' q1 {$ [, o
6 V" u4 G) U" E# E$ l5 c8 c& J. a0 D4 个 32 位 配 置 寄 存 器# t5 @2 Q+ b1 s/ V! C

! p& L' N) M# m' O/ D9 u, MGPIOx_MODER:模式配置寄存器
: z+ t. j8 U  U" O% t: U! I/ [0 z& t" `1 c
GPIOx_OTYPER:输出模式配置寄存器
7 z2 a0 y! f3 n- i1 C5 m% B# Y' I8 ?: w6 z/ M- X
GPIOx_OSPEEDR:输出速度寄存器2 P7 w0 G( I1 A& O/ y3 c! }, T
" {9 K- s$ e7 `; O9 W8 e
GPIOx_PUPDR:上拉下拉选择9 X8 k, p$ Y: y- \5 C$ H: _) O3 \5 @( w
. l: H. N  }, n1 y+ B
2 个 32 位数据寄存器
3 o, [, E7 ]& N8 Q# W0 |4 ]
  D7 {: u; X* v1 sGPIOx_IDR:输入寄存器, h8 B; p2 x; K" A0 N
- V( A$ s; Q6 V( n9 K, a3 o& F. f  l
GPIOx_ODR:输出寄存器7 X! J- S* C2 ]& V

# \, z$ g8 O# R" }1 个32 位置位 / 复位寄存器
& c# G9 `/ A( e. Q8 E* s& W
1 D( L9 p/ y4 d0 xGPIOx_BSRR0 S  F" o- L7 ]% u

! e7 n0 C2 O' N" A& X5 U, J6 Y' W7 NA和B还含有1个32位锁定寄存器7 j% h6 ~5 d3 u0 \; v% S- G; H

4 g& E, e8 I: G+ o( `GPIOx_LCKR
; ?1 ~( c" L' |: t( ^2 E6 c- _( p
* [& M# N1 U5 B+ GA和B还含有2个32位替代功能寄存器
( R9 ]7 g0 F) m" e  c: `  X' e+ V0 u+ p# W+ m& ^+ ^
GPIOx_AFRH :复用功能寄存器+ o( w( m, w! |$ s# d4 Q1 D

7 J: G" C; K$ _5 o$ G( |* jGPIOx_AFRL :复用功能寄存器4 e3 U$ c1 m7 d2 S

- \& M3 O% `! {; \GPIO口可以配置成如下模式:
: Z! N6 @/ R( X  T% f
3 S- O6 m2 j# a8 h% [● 浮空输入
0 Y' ^6 r" g# b- Y( j( A
$ C. k* l1 U/ Q3 `$ i● 上拉输入
  \/ e4 D- Y# N( Y9 x" y  u& I5 ?  ]* l0 ~1 ^$ r
● 下拉输入
2 s4 V, F8 T8 x* M
- P8 }) k- H+ y% \3 N" Q: D6 \8 y● 模拟输入
! B* f: h) C1 H7 i% P5 m
) K$ q0 r: _* }- o+ e5 |3 M● 具有上拉或下拉能力的开漏输出
2 U) z& Z6 r) i1 v' i7 n% x) ^1 U9 a# H
● 具有上拉或下拉能力的推挽输出
$ E# I8 p6 N" ]/ X( M2 S
% X: G- G! q! y# t● 复用功能且具有上拉或下拉能力的推挽输出, O7 p. |9 N- u

5 ^6 B7 G- @. ^4 r* S● 复用功能且具有上拉或下拉能力的开漏输出% B% b; N* o8 f9 E

5 D! h& `, r- ~9 G  v8 ]  J  B* S! F注意事项:
7 g" u" t' r& o$ A* p7 {! B; P
1:所有端口都有外部中断能力。 为了用做外部中断口线, 端口线必须配置为输入模式
6 n8 V: X- w: h/ y7 f1 f- W1 ^$ P  ]9 M
2:对于 GPIOx_ODR 中的每位, 在GPIOx_BSRR 中有两位与之对应: BS(i) 和 BR(i)。 当对位
* O4 {( j# s- f8 u* l- X
) f" T- u7 H- p. Q' B0 ~3 ZBS(i) 写1时则设置相应的 ODR(i) 位。 当对 BR(i) 写1时, 则复位相应的 ODR(i) 位。9 Z, ]8 r1 i8 G- C

  S+ `1 P9 w0 @0 p: Q( q3:为了写 GPIOx_LCKR 寄存器, 须发出一个特定的写 / 读序列。 当正确的锁定序列作用于这个6 W7 ?  ~0 w1 p8 d- b: F. ?. h

# I- p& D4 K5 D* R0 A3 _8 z寄存器的位 16 时, LCKR[15:0] 的值用来锁定 I/O 口的配置  E8 B  q' ]; P( D$ ?' E& y

" s0 |2 h: N! u' x8 G- J# V  t/ v配置过程:
( T$ {' a% H+ o! }9 p+ h7 S& J) J9 Q  [. a% ]3 W6 q  u
  1. void GPIOConfigure( void )
    9 l3 ?* |: ]0 a( A0 e
  2. 3 B: ~" Z% D/ Z; t. n# h
  3. {
      `: r9 Z) k# P8 z* g: p
  4. GPIO_InitTypeDef gpio_init_structure;
    - d7 U9 K6 A* Z- u. Y
  5.   n; r6 Z4 J8 f2 o
  6. gpio_init_structure.GPIO_Mode = GPIO_Mode_OUT; //输出模式
    & R8 j. G' D$ ~* @  k" d5 K/ s
  7. ) |# }2 Y$ r. J7 G! S* m
  8. gpio_init_structure.GPIO_Speed = GPIO_Speed_50MHz; //输出速度
    " k- D' ?) C1 s* `+ S
  9. . b$ `2 a# G7 }
  10. gpio_init_structure.GPIO_Pin = GPIO_Pin_0; //引脚6 d. v6 C1 L$ q* ?0 o: q7 m) p
  11. 0 |& C/ ^! w1 G9 g7 D' J, n: g
  12. gpio_init_structure.GPIO_PuPd = GPIO_PuPd_UP; //上拉模式输出
    * N6 A+ r$ ^' e+ F) L

  13. + [# T1 }5 ~# v. E8 W7 W8 Z
  14. gpio_init_structure.GPIO_OType = GPIO_OType_PP; //推挽模式输出& a4 [9 g0 F+ B6 |

  15. " L; j" c" t! ]4 M! S
  16. 2 f. e$ ~& o7 N% j
  17. ) I0 J( i2 C( a$ I) R/ N
  18. GPIO_Init(GPIOA,&gpio_init_structure);
    9 J% A$ N/ l* ^2 z& j& a0 E; _* h

  19. + G# I% f# u1 ~* _7 t9 c  X  |
  20. }
复制代码
  1. #define GPIOA_SET_BIT0 GPIO_SetBits(GPIOA,GPIO_Pin_0)//置位
      n! z+ X7 e3 L# a6 x
  2. 0 w! S, M2 j* t( X5 A
  3. #define GPIOA_RSET_BIT0 GPIO_ResetBits(GPIOA ,GPIO_Pin_0)//复位
    , z4 c8 V$ v2 l" f, c4 u& g/ A2 S
  4. ' g& n$ W- o! n
  5. #define GPIOA_RDIN_ALL GPIO_ReadInputData(GPIOA)
    # B' z% R2 A7 d, [  S' }7 d
  6. 0 s, }7 L# {: ?6 z
  7. #define GPIOA_RDIN_BIT0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)" D- W& u. d1 M+ p  z

  8. * w: p  G) q; k% u) j; F
  9. #define GPIOA_RDOUT_ALL GPIO_ReadOutputData(GPIOA), m6 e. ?! a$ T8 u2 ~% W2 m

  10. - P* ]1 H, _' ?" C
  11. #define GPIOA_RDOUT_BIT0 GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)" u- |6 ?. A9 `8 H% u
复制代码

; G% f8 X- n- Y1 E+ D5 I/ I上面是相应的读取和写入函数,看函数名就可以理解此函数的功能; X, v5 t( D' p4 ]
) V# L0 g* s- Q$ z/ ~
! a9 F- m% Q; N. V1 Z" K: R
  X4 l! t% E4 [3 J' m5 g+ w% f

1 _# |2 u/ G& v0 e
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答

所属标签

相似技术帖

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