②外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入。

③ADC对应的管脚:配置管脚为模拟输入。

如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。将管脚配置成复用输出功能后,如果外设没有被激活,那么它的输出将不确定。

(三) 通用IO端口(GPIO)初始化:

1、 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2总线外设时钟;

2 、RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):释放GPIO复位;

3、配置各个PIN端口(模拟输入_AIN、输入浮空_IN_FLOATING、输入上拉_IPU、输入下拉_IPD、开漏输出_OUT_OD、推挽式输出_OUT_PP、推挽式复用输出_AF_PP、开漏复用输出_AF_OD)和匹配速度。

4 、GPIO初始化完成

附注1:PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利用锁相环路就可以实现这个目的。

附注2:STM32的GPIO口的输出:开漏输出和推挽输出

1、推挽输出与开漏输出的区别:

》》推挽输出:可以输出高,低电平,连接数字器件

》》开漏输出:输出端相当于三极管的集电极。 要得到高电平状态需要上拉电阻才行。 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。

推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

要实现 线与 需要用OC(open collector)门电路。是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。

当端口配置为输出时:

开漏模式:输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。

输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路),也就是说此模式下只有 N-MOS对输出起作用;此模式可以把端口作为双向IO使用。

推挽模式:输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。

输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。

简单来说,开漏是0的时候接GND ,1的时候浮空;推挽是0的时候接GND ,1的时候接VCC。

2、开漏电路特点及应用

在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。