------------------------------推挽输出
------------------------------推挽复用
'''
英文缩写
(1)GPIO_Mode_AIN ------------模拟输入
(2)GPIO_Mode_IN_FLOATING ----浮空输入
(3)GPIO_Mode_IPD ------------下拉输入
(4)GPIO_Mode_IPU ------------上拉输入
(5)GPIO_Mode_Out_OD ---------开漏输出
(6)GPIO_Mode_Out_PP ---------推挽输出
(7)GPIO_Mode_AF_OD ----------复用开漏输出
(8)GPIO_Mode_AF_PP ----------复用推挽输出
'''
①浮空-- 浮在空中.也就是没有什么把它拉下来,也没有什么把它拉上去. 浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值(高阻态). 浮空一般用来做ADC输入用,这样可以减少上下拉电阻对结果的影响.(百度资料)
②输入上拉和输入下拉都是在浮空内部用上拉电阻或者用下拉电阻,然后通过TTL施密特触发器再经过输入数据寄存器发送给CPU
注:施密特触发器--是一种触发器----门电路有一个阈值电压,当输入电压从低电平上升到阈值电压或从高电平下降到阈值电压时电路的状态将发生变化。施密特触发器是一种特殊的门电路,与普通的门电路不同,施密特触发器有两个阈值电压,分别称为正向阈值电压和负向阈值电压。在输入信号从低电平上升到高电平的过程中使电路状态发生变化的输入电压称为正向阈值电压,在输入信号从高电平下降到低电平的过程中使电路状态发生变化的输入电压称为负向阈值电压。正向阈值电压与负向阈值电压之差称为回差电压。
它是一种阈值开关电路,具有突变输入——输出特性的门电路。这种电路被设计成阻止输入电压出现微小变化(低于某一阈值)而引起的输出电压的改变。
利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于vt+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。
当输入电压由低向高增加,到达V+时,输出电压发生突变,而输入电压Vi由高变低,到达V-,输出电压发生突变,因而出现输出电压变化滞后的现象,可以看出对于要求一定延迟启动的电路,它是特别适用的
③模拟输入-----输入的信号是模拟信号不是电平信号,一般范围在0-3.3V,与其他三种不同的是输入的信号没有经过施密特触发器(联系ADC)
-有趣点- ------>IO口的输出电平可以被CPU读取!!
④开漏输出:在参考资料上,开漏输出的解释是--开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动, 其吸收电流的能力相对强(一般 20ma 以内);
开漏输出时引脚需要外接上拉电阻,不然只能输出低电平。开漏输出的优点是,可以通过改变电源电压,从而改变电平信号
开漏输出可以输出 强低电平 ,若要输出强高电平,需要外部上拉电阻
⑤推挽输出:与开漏输出有点的类似,不过推挽输出可以输出强低和强高电平,不需要外部上拉电阻,可以直接接数字电器
(3)GPIO相关寄存器介绍:GPIO相关的寄存器有------ 两个32位的配置寄存器(端口配置高低寄存器);两个32位的数据寄存器(端口输入和端口输出寄存器);一个32位复位寄存器;一个16位复位寄存器;一个32位锁定寄存器;
------------------端口配置低寄存器(GPIOx_CRL) :控制IO低7位(例如PA0-PA6)
------------------端口配置高寄存器(GPIOx_CRH):控制IO高7位(例如PA7-PA15)
------------------端口输入数据寄存器(GPIOx_IDR) :高16位保持不变,可以通过配置该端口的低位来操作16位IO口的输入数据
------------------端口输出数据寄存器(GPIOx_ODR) :
在端口配置为输入模式下,可以通过配置端口输出数据寄存器来配置端口是上拉模式还是下拉模式
------------------端口位设置/清除寄存器(GPIOx_BSRR) :
(4)GPIO复用功能:GPIO除了作为通用IO口外,还能作为复用功能----最大量利用端口资源
(5)GPIO重映射功能:把端口的功能映射到另一个端口---方便布线
注:如果有什么不对的,请大家多多包涵