(本文来自http://blog.21ic.com/user1/5759/archives/2009/63841.html
()
 
stm32的GPIO可以由软件配置成:

输入浮空,输入上拉,输入下拉,
模拟输入
开漏输出,推挽输出,
开漏复用,推挽复用.

stm32复位后,IO端口处于输入浮空状态.
JTAG引脚复位以后,处于上拉或者下拉状态.

所有IO端口都具有外部中断能力,端口必须配置成输入模式,才能使用外部中断功能.

IO端口复用功能配置:

对于复用功能输入,端口可以配置成任意输入模式或者复用功能输出模式.
对于复用功能输出,端口必须配置成复用功能输出
对于双向复用功能,端口必须配置成复用功能输出

stm32的部分IO端口的复用功能可以重新映射成另外的复用功能.

stm32具有GPIO锁定机制,即锁定GPIO配置,下次复位前不能再修改.

当LSE振荡器关闭时,OSC32_IN和OSC32_OUT可以用作通用IO PC14和PC15.
当进入待机模式或者备份域由Vbat供电,PC14,PC15功能丢失,该两个IO口线设置为模拟输入功能.

OSC_IN和OSC_OUT可以重新映射为GPIO PD0,PD1.


注意PD0,PD1用于输出地时候仅能用于50MHz输出模式.

注意:PC13,PC14,PC15只能用于2MHz的输出模式,,最多只能带30pf的负载,并且同时只能使用一个引脚!!!!!!!! 如果把这3个脚都作为输入,则没有任何问题。