STM32 GPIO的八种工作模式
四种输入模式
1. 浮空输入: 外部电路决定输入的电平高低,如果外部未接电路择悬空,一般会读到高电平
GPIO_Mode_IN_FLOATING //浮空输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //设置浮空输入
**2. 上拉输入:**内部有弱上拉电路,当外部没有输入时,读到高电平, 当外部低电平输入时,读到低电平
GPIO_Mode_IPU //上拉输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置上拉输入
**3. 下拉输入:**内部有弱下拉电路,当外部没有输入时,读到低电 平,当外部低电平输入时,读到高电平
GPIO_Mode_IPD //下拉输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //设置下拉输入
**4. 模拟输入:**用于输入模拟信号,介于高电平和低电平之间
GPIO_Mode_AIN //模拟输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //设置模拟输入
四种输出模式
**1. 开漏输出 :**P-MOS不激活,N-MOS可用,输出0时,N-MOS导通,外部电流流入,IO口得到低电平。输出1时,N-MOS高阻抗,IO口电平由外部电路决定,开漏可实现 “线与” 功能,也可以做电流型驱动。(一般IIC这样配置)。
GPIO_Mode_Out_OD //开漏输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //设置开漏输出
**2. 推挽输出:**输出0时,P-MOS不激活,N-MOS激活,电流流入,IO口低电平,输出1时,N-MOS不激活,P-MOS激活,电流流出,IO口高电平。(一般用于输出数字信号)。
GPIO_Mode_Out_PP //推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置推挽输出
**3. 复用推挽输出:**用于外设的推挽式输出
GPIO_Mode_AF_PP //复用推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //设置模式复用推挽输出
**4. 复用开漏输出:**用于外设的开漏输出
GPIO_Mode_AF_OD //复用开漏输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; //设置复用开漏输出