首先来讲一下8种IO配置
1.四种输入
- 浮空输入
GPIO_Mode_IN_FLOATING
浮空输入使用过程中,io口的电平由输入端决定
- 模拟输入
GPIO_Mode_AIN
- 上拉输入
GPIO_Mode_IPU
上拉输入过程中,io口会接一个上拉电阻,默认电平为高电平。
- 下拉输入
GPIO_Mode_IPD
下拉输入过程中,io口会接一个下拉电阻,默认电平为低电平
2.四种输出
- 推挽输出
GPIO_Mode_Out_PP
- 开漏输出
GPIO_Mode_Out_OD
- 复用开漏
GPIO_Mode_AF_OD
- 复用推挽
GPIO_Mode_AF_PP
接下来讲一下我在使用外部中断过程中遇到的问题。(PA12 PA15 PB3)作为输入引脚,会出现哪些问题,以及如何解决
1.PA15 ,PB3 这两个io口默认被设置为JTAG的调试接口。如果需要使用则需要加上以下代码
在io口配置的前面,否则无法控制该引脚。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
2.PA12 这个io口连接的是USB的D+端,默认为上拉,即该io口不管如何配置默认都为高电平。
基于该特性,该io口在被设置为下拉输入时会无法使用。
最后,建议大家在配置io口之前千万千万看看芯片手册,看哪些io口是特殊io口。防止掉坑。