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

【经验分享】stm32f0_GPIO

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
GPIO口0 U2 Z8 P. N; w" a# E7 i0 U
5 N1 }. f; p1 N. L8 V# F
介绍:
; X( K6 t9 c! j* h  F. h* R9 u; v
- u' A  {" f3 Z! x4 个 32 位 配 置 寄 存 器$ r. K8 G/ I: f, y/ ^* f' Z6 H3 E

! B5 V" o% p) ~GPIOx_MODER:模式配置寄存器- I$ C5 v" Y! i' j# M- q* q. V

: }1 S7 ~# g  P" T: g% \$ E' PGPIOx_OTYPER:输出模式配置寄存器
' s* t. ^, ~2 W; m1 r) M& f: ]( b, [/ F9 u8 f2 f' H
GPIOx_OSPEEDR:输出速度寄存器1 a) i! ~' s' c# K+ j7 @
# |# z4 z# i" F( T  y1 X3 J
GPIOx_PUPDR:上拉下拉选择& Z  ^4 X0 r1 }! K0 g

/ X0 u- G2 i/ S8 q, M3 y0 g2 个 32 位数据寄存器9 d0 F6 o" X0 V; H  n7 H- i
, O5 F) z1 ?+ J% D  J
GPIOx_IDR:输入寄存器% K+ r8 f* `9 \1 K2 Q0 u+ W: h  p
- V. ]1 e- g0 F; G; x) b
GPIOx_ODR:输出寄存器3 F! l/ P* ^& q: H' f0 q

1 X0 c+ [5 u2 T1 个32 位置位 / 复位寄存器
, u' a* f7 M2 C
# g. Y1 m: e5 @3 tGPIOx_BSRR) y; M0 k) I( T# B: e8 H& P

; f5 F  ?3 A3 o8 s8 PA和B还含有1个32位锁定寄存器
) }. U; ]4 d% }& s$ ^) {- A, I" P" q3 O2 ~6 j
GPIOx_LCKR4 G: a  ^$ i( i3 |( \) Q% E
4 h' ~6 \- ]& B3 p
A和B还含有2个32位替代功能寄存器  T6 h3 e6 k6 A5 h

; Y7 P; F& ^5 @9 P* W3 W" eGPIOx_AFRH :复用功能寄存器
5 ]* s3 S2 |) h* B$ f1 h, s1 r+ r" L' {" ^* @
GPIOx_AFRL :复用功能寄存器
1 \/ ~- a# d0 U: Z8 r4 r8 H, Z8 n
5 `" y4 p& J' }GPIO口可以配置成如下模式:
  A, L/ d$ k+ L& N7 s: x2 C
$ D' U: K4 L6 o/ [● 浮空输入
) `* d" t2 g2 l. i  M4 p0 k3 U: d( U- p
● 上拉输入- @( [* X6 s! g8 P+ F! ~
+ i8 _8 p9 o" L
● 下拉输入  M8 S, ~  ]" ]

" k4 O' w. l8 s, i# t● 模拟输入
) r: t/ z% Y. r
/ B5 f+ p* F5 I2 Z● 具有上拉或下拉能力的开漏输出+ J7 I# X" ^; X9 A9 X4 _

* ^" F; E# U' `7 X% V! g● 具有上拉或下拉能力的推挽输出
! A4 L! U* W! f4 K- M  x+ f- Q1 I* ^0 N" u, u
● 复用功能且具有上拉或下拉能力的推挽输出9 ]. ?  l9 q! b* S) r' _4 E: H
. k' E* O; V' V# v
● 复用功能且具有上拉或下拉能力的开漏输出# H  \* F' |5 }8 [- m4 S
/ b/ Q6 C) n  N; [) I' A( G
注意事项:
. F6 L2 n; T& p0 O, B1 [% L
# g  Z' ^" Y) V2 \1:所有端口都有外部中断能力。 为了用做外部中断口线, 端口线必须配置为输入模式* x' }- N: E# b/ W/ h& t* C/ X, Q

, r* [$ i6 t2 I( K; p+ r/ p2:对于 GPIOx_ODR 中的每位, 在GPIOx_BSRR 中有两位与之对应: BS(i) 和 BR(i)。 当对位
% ]$ {1 P5 w3 [2 j/ {* {/ V1 N3 b0 Z3 g
BS(i) 写1时则设置相应的 ODR(i) 位。 当对 BR(i) 写1时, 则复位相应的 ODR(i) 位。
% G) i8 H) M$ X2 r* s0 W0 m6 {( e2 C8 O: ~
3:为了写 GPIOx_LCKR 寄存器, 须发出一个特定的写 / 读序列。 当正确的锁定序列作用于这个
9 v0 I" M, R  E1 z) E7 d! f. _2 \- @' W3 ]1 M3 h' s
寄存器的位 16 时, LCKR[15:0] 的值用来锁定 I/O 口的配置/ u9 ^( t. E. c! G' V. I% S& ~4 F
; ^9 s  R4 E6 d/ j& ~, p6 O
配置过程:
" i- i6 G) F! l1 I4 ^$ [* C0 @. H4 E6 W5 v! ^
  1. void GPIOConfigure( void )
    7 i$ `) Q* o- l

  2. 5 S# V  C. ^# o. i
  3. {0 Y! O' y7 `& P6 \
  4. GPIO_InitTypeDef gpio_init_structure;
    3 o& I! L6 K& b) j) |6 a* Z$ i  `

  5. 3 \2 a/ P& r+ H9 d
  6. gpio_init_structure.GPIO_Mode = GPIO_Mode_OUT; //输出模式
    " `* U0 f. c' h9 }' r

  7. . B: a. X' a" ~2 b- a# h
  8. gpio_init_structure.GPIO_Speed = GPIO_Speed_50MHz; //输出速度7 e1 l, t- P" {. D2 g% E3 g9 w" _
  9. - q" `! _+ Q2 I5 m! D
  10. gpio_init_structure.GPIO_Pin = GPIO_Pin_0; //引脚
      p. r' ~  C& r4 E

  11. . T" \) @4 A! u6 _  d
  12. gpio_init_structure.GPIO_PuPd = GPIO_PuPd_UP; //上拉模式输出6 ^$ o- V  X3 L4 G% ?
  13. + Z" G" \& T! R
  14. gpio_init_structure.GPIO_OType = GPIO_OType_PP; //推挽模式输出
    / t8 c1 ]3 ~8 y- L' ]) \8 ^
  15.   n* ^( B. O/ y( A/ I. e3 |- p

  16. 7 h0 G- r6 g" b( A1 l1 N8 `: h
  17. * c5 d: F6 ?  B" z# r: C
  18. GPIO_Init(GPIOA,&gpio_init_structure);
    ) |: U) U! E! O9 |8 _$ }
  19. ; G) e" y- f6 d" U; d
  20. }
复制代码
  1. #define GPIOA_SET_BIT0 GPIO_SetBits(GPIOA,GPIO_Pin_0)//置位7 o0 I, h" V; D# X- [  s+ f
  2. ' Z8 Q4 r7 q8 c2 {
  3. #define GPIOA_RSET_BIT0 GPIO_ResetBits(GPIOA ,GPIO_Pin_0)//复位
    1 S  c4 `3 V- C+ M) a, {  D

  4. 9 l! S( ]) `( k# e9 m0 Q4 u4 X: ^
  5. #define GPIOA_RDIN_ALL GPIO_ReadInputData(GPIOA)
    9 R2 a+ q  ?4 h4 ?( g9 Z5 t2 U
  6. 8 T( |" O2 t: L! C: [- ~
  7. #define GPIOA_RDIN_BIT0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)8 B2 ^" M5 |& L' J' S/ U# H

  8. ! X+ A  L- `  E
  9. #define GPIOA_RDOUT_ALL GPIO_ReadOutputData(GPIOA)! v4 h" d* S6 d+ l2 ]' D# Q
  10. % S- t5 G( l8 }; P" Z( Z
  11. #define GPIOA_RDOUT_BIT0 GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)
    / W. e  Q3 I/ X" z. _/ O5 @; K, b
复制代码

$ b1 C8 C! E8 e上面是相应的读取和写入函数,看函数名就可以理解此函数的功能
8 X& O& Z- N& n8 C% {9 M" q4 y: ~. L0 K! a

; k1 _* }, B/ Y2 C- v: U  {+ |4 P" v& r2 V2 ~
/ d0 j3 g7 W1 s( K# I* ^
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版