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

【经验分享】stm32f0_GPIO

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
GPIO口
0 P% j) t. T  L& x! ?' f
5 u) v" i7 p6 ?! `# X8 B介绍:
% T" |: [/ E: k! A& i+ M  F; Y& j2 ]0 n  Q: c: B
4 个 32 位 配 置 寄 存 器+ y  M4 c8 C0 Y- y
  A5 Q2 b& c3 ?" P
GPIOx_MODER:模式配置寄存器
6 C5 n3 a( f9 }7 l5 X  B3 {: Z8 ^  l' B. A3 h3 r; t4 p
GPIOx_OTYPER:输出模式配置寄存器
; O9 ]/ R% J9 B  g5 V3 H: @" @; q* M# O7 H4 K
GPIOx_OSPEEDR:输出速度寄存器! ^1 d1 a9 a/ e4 N3 [5 W9 O

. y& Z* k1 ]* [GPIOx_PUPDR:上拉下拉选择
' u# T7 t& r9 ?2 G/ m  n0 S
+ x2 N( P* U3 r) C8 J" A, q8 K2 个 32 位数据寄存器+ v* X9 l' J! E+ C

! Z& u! Q7 I) q6 v. i" [) X0 ^GPIOx_IDR:输入寄存器
4 t# N8 B( R; i" s, z  i
7 [, h; L( p* i; |. QGPIOx_ODR:输出寄存器% T: r+ u# p, m2 y- `6 V

  B* w) o* W( l8 x& c. t% n1 个32 位置位 / 复位寄存器' [3 f* B  G. F- s( t/ t5 F
" S+ \4 O1 ^' ~. C6 J8 k, B0 w
GPIOx_BSRR0 }- o' e) {8 }% N2 K& y

0 ?& x: S0 Z7 y7 s- o. MA和B还含有1个32位锁定寄存器
. L6 f7 U" e3 S9 ~8 T/ h# W1 ?- Y3 ^( u1 N
GPIOx_LCKR
* ~$ W. d% D* Y, V5 I
# x$ Z4 V" U. [: c4 D, zA和B还含有2个32位替代功能寄存器
7 E9 L- \4 B0 Z( Z3 m: ]
( q1 |+ @, X4 R/ P; j5 h# G0 LGPIOx_AFRH :复用功能寄存器, i! c/ ?3 I8 U" h5 Y# p6 o0 q
5 {. Z5 x" c' `
GPIOx_AFRL :复用功能寄存器+ a. P6 a% }5 R8 x$ x
. S. o! l8 B5 J/ u$ r8 P8 r' I2 u
GPIO口可以配置成如下模式:8 r! Z( P. S- c. G

& f( ]: u* E2 h● 浮空输入
( T# T' F$ D5 m5 M$ M( S7 Z; I$ ~2 L4 S  q/ W
● 上拉输入1 x9 s+ A5 W: p! j6 f5 j3 c
3 K& ]1 I9 M+ s' D
● 下拉输入- R0 S9 z  i& q

( [. ?7 f& I3 E$ [4 `/ b● 模拟输入9 W9 F4 M% k+ d0 _0 c
2 d  C6 Y: o5 ^
● 具有上拉或下拉能力的开漏输出
  R; n' i5 m) h8 `- q( G# ^9 D& b8 L3 E( J% U( Y
● 具有上拉或下拉能力的推挽输出
0 `( J- \- i" S& I' g, L  C1 V+ |; _- m1 B3 Z0 k) H8 n
● 复用功能且具有上拉或下拉能力的推挽输出  J6 V. M) Q1 O4 J% s7 U6 q
/ j8 p* b( b4 s/ k/ ~
● 复用功能且具有上拉或下拉能力的开漏输出
) w. C9 e8 G2 ^- m7 t' r  @
0 E; d4 ?  j  J注意事项:
  D  i* V6 p7 u- a: u* R* }
5 F, Z- S: J% H! h3 s4 j* N1:所有端口都有外部中断能力。 为了用做外部中断口线, 端口线必须配置为输入模式
# S0 Z. _" n1 M0 ~: N% c
7 P2 g- f$ r8 h; d) z2:对于 GPIOx_ODR 中的每位, 在GPIOx_BSRR 中有两位与之对应: BS(i) 和 BR(i)。 当对位) G  v2 `( x- Z5 x9 S
( T4 Q! A, f# K9 l
BS(i) 写1时则设置相应的 ODR(i) 位。 当对 BR(i) 写1时, 则复位相应的 ODR(i) 位。8 r. S6 m" k4 {4 Q3 s

2 m# X4 j* N8 c: J; q$ D/ ?: Y3:为了写 GPIOx_LCKR 寄存器, 须发出一个特定的写 / 读序列。 当正确的锁定序列作用于这个* [9 ~1 y) j7 Z2 Y

! u+ u' B; x5 N; M1 k! d+ H& }寄存器的位 16 时, LCKR[15:0] 的值用来锁定 I/O 口的配置6 [5 ]1 t4 ^7 B) t# v
" z$ w. ?* ]' [2 l
配置过程:7 o7 o* b. S1 S; u5 Q

' G) ?9 y" |0 E& d
  1. void GPIOConfigure( void )
    - u% o% e( ?& w

  2. + K: J6 j$ Z8 V, t, z
  3. {1 d, k8 W! x- [+ U/ R! m
  4. GPIO_InitTypeDef gpio_init_structure;9 A: R- S; V( D, a; \& u" E& H

  5. % [3 z& ~% G8 J; y- S9 J
  6. gpio_init_structure.GPIO_Mode = GPIO_Mode_OUT; //输出模式4 z5 ]# g  ^; P7 W7 J& ]
  7. 8 h/ u$ X) `! @/ b8 j$ P
  8. gpio_init_structure.GPIO_Speed = GPIO_Speed_50MHz; //输出速度
    ! B  J' X" v/ E4 i. [- m. G

  9. 3 I6 ]9 g. W' ~6 S3 F# K% p
  10. gpio_init_structure.GPIO_Pin = GPIO_Pin_0; //引脚
    # u$ B/ s4 T$ h6 ?# x

  11. 3 C3 Q, a/ f) v& M- C, f
  12. gpio_init_structure.GPIO_PuPd = GPIO_PuPd_UP; //上拉模式输出
    ) m7 X! c1 y1 R1 A* _2 D) S; X0 b1 Y& V

  13. 9 e: u0 A0 z/ z: p
  14. gpio_init_structure.GPIO_OType = GPIO_OType_PP; //推挽模式输出* Q* P7 L8 @1 G8 e

  15. 2 `' Q; i! P; v& E6 }& c( b- h1 _
  16. - ]/ B% p- a! Y0 r( t/ \" \

  17. 2 Z: g; p0 K) I. m  W* {8 P
  18. GPIO_Init(GPIOA,&gpio_init_structure);
    ! `. z" v0 d2 z

  19. 5 f: [) V6 A2 x  N( V; ~) j4 m
  20. }
复制代码
  1. #define GPIOA_SET_BIT0 GPIO_SetBits(GPIOA,GPIO_Pin_0)//置位
    * N! f/ J4 r8 e. V. @+ ~
  2. 3 o7 M; w0 e5 e3 D
  3. #define GPIOA_RSET_BIT0 GPIO_ResetBits(GPIOA ,GPIO_Pin_0)//复位
    $ S1 |+ f  n2 R. ^, N

  4. 2 I1 |9 K* x2 S6 \) a" j
  5. #define GPIOA_RDIN_ALL GPIO_ReadInputData(GPIOA)
    5 Q. |" G# s  d2 W- f6 {  ~
  6. % b* F5 f, V" ]4 q7 W+ |6 r
  7. #define GPIOA_RDIN_BIT0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
    6 C; B# G* W' B( O

  8. * c& H& \) \" Q; s: g$ T
  9. #define GPIOA_RDOUT_ALL GPIO_ReadOutputData(GPIOA)2 `; b* {8 a( f+ h! j# O3 I
  10. 5 n8 X. d8 r6 s
  11. #define GPIOA_RDOUT_BIT0 GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)' Q. a$ M+ C4 r/ A0 m4 [( x8 K
复制代码

# _8 C& ?2 u! _7 _3 O2 J: y上面是相应的读取和写入函数,看函数名就可以理解此函数的功能
3 i: a4 ]9 h! Z5 x$ i
( ]) Z2 I3 F: G7 y  ^- j. Q* _, T
' [3 M' {0 D( }# F# b/ N' o7 a. C$ a3 N2 A3 R, G( H

- j3 H3 z5 {$ M3 Q. M" L9 A' V
收藏 评论0 发布时间:2021-11-24 15:00

举报

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