GPIO口0 U2 Z8 P. N; w" a# E7 i0 U 5 N1 }. f; p1 N. L8 V# F 介绍: 4 个 32 位 配 置 寄 存 器$ r. K8 G/ I: f, y/ ^* f' Z6 H3 E GPIOx_MODER:模式配置寄存器- I$ C5 v" Y! i' j# M- q* q. V GPIOx_OTYPER:输出模式配置寄存器 & 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 2 个 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 个32 位置位 / 复位寄存器 GPIOx_BSRR) y; M0 k) I( T# B: e8 H& P A和B还含有1个32位锁定寄存器 , 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 GPIOx_AFRH :复用功能寄存器 $ f1 h, s1 r+ r" L' {" ^* @ GPIOx_AFRL :复用功能寄存器 GPIO口可以配置成如下模式: ● 浮空输入 4 p0 k3 U: d( U- p ● 上拉输入- @( [* X6 s! g8 P+ F! ~ + i8 _8 p9 o" L ● 下拉输入 M8 S, ~ ]" ] ● 模拟输入 ● 具有上拉或下拉能力的开漏输出+ J7 I# X" ^; X9 A9 X4 _ ● 具有上拉或下拉能力的推挽输出 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 注意事项: 1:所有端口都有外部中断能力。 为了用做外部中断口线, 端口线必须配置为输入模式* x' }- N: E# b/ W/ h& t* C/ X, Q 2:对于 GPIOx_ODR 中的每位, 在GPIOx_BSRR 中有两位与之对应: BS(i) 和 BR(i)。 当对位 / {* {/ V1 N3 b0 Z3 g BS(i) 写1时则设置相应的 ODR(i) 位。 当对 BR(i) 写1时, 则复位相应的 ODR(i) 位。 0 m6 {( e2 C8 O: ~ 3:为了写 GPIOx_LCKR 寄存器, 须发出一个特定的写 / 读序列。 当正确的锁定序列作用于这个 ) 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 配置过程: 4 ^$ [* C0 @. H4 E6 W5 v! ^
上面是相应的读取和写入函数,看函数名就可以理解此函数的功能 9 M" q4 y: ~. L0 K! a : U {+ |4 P" v& r2 V2 ~ / d0 j3 g7 W1 s( K# I* ^ |
【经验分享】STM32F1和STM32F4 区别
【经验分享】STM32F1系列之常用外设说明
【经验分享】STM32介绍
【经验分享】STM32F1x系列——Flash 模拟 EEPROM
【经验分享】STM32F1在MDK下新建标准库函数工程
【经验分享】stm32f1的存储器与复位
【经验分享】STM32F10X-架构
【经验分享】stm32F1 us延时函数
【经验分享】STM32F1之定时器
【经验分享】【stm32】stm32f1代码中core_cm3、system_stm32f10x、stm32f10x_conf、stm32f10x等文件的作用