GPIO的用法一般有:
1.控制引脚输出高、低电平,或者直接驱动LED、继电器等期间实现开关功能;
2.芯片接收外部输出高、低电平,一次确定某些外部设备(例如开关、按钮等)状态,做出相应的操作,还可以模仿时钟等作用。
输入模式(input)一般是外设反馈的值或者说是数据的检测,
输出模式(output)一般是内部CPU驱动外设状态的作用。
GPIO有八种工作方式:
4种输入模式有:
1.输入浮空(适用于外部按键输入检测,/USART_RX引脚)
输入浮空模式:数据通道中接入TTL触发器(作用将相对胡安娜变化的信号变成矩形信号)整形,随后输出到输入数据寄存器,该种工作模式未接入任何上拉下拉电阻,IO口的电平完全室友外部电路决定的。模式特点:在引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。
2.输入上拉 (配置中断输入(引脚触发中断条件为下降沿触发/低电平触发时),不可用做电流型驱动)
上拉电阻模式:与浮空输入模式相比,仅仅是在数据通道前接入了一个上拉电阻。特点是:在无信号输入时端口电位收到上拉电阻的钳制,io端口输入电平始终为高电平;而当端口输入电平为低电平时,io端口输入电平为低电频。
3.下拉输入模式 配置中断输入(触发条件为上升沿触发/高电平触发时),不可做电流型驱动
下拉输入模式:与浮空输入模式相比,仅仅是在数据通道前端接入了一个下拉电阻。模式特点:再无信号输入时,端口电位受下位电阻钳制,io端口输入电平始终保持为低电平;而当端口输入电平为高电平时,io端口为高电平。
4.模拟输入模式 该模式下需要用到芯片内部的模拟电路单元,用于ADC、DAC、MCO这类操作模拟信号的外设。ADC模拟输入/低功耗下省电
模拟输入模式:数据通道不介入任何单处理单元(TTL触发器/钳制电阻),直接输入MCU内部的处理单元。模式特点:相较于其他输入模式只能读到逻辑高/低电平(数字量),该模式能读到细微变化的值(模拟值)
4输出模式有:
1.推挽输出 驱动LED、数码管等电子元器件、输出控制某个信号。另外在推挽输出模式下,我们可以读取改io口的电平状态
推挽输出:输出具有驱动能力,当CPU输出逻辑 “0”时,io口输出低电平,二挡CPU输出逻辑电平“1”时,io端口输出高电平。推挽输出模式下输出高电平,有较强的驱动能力,驱动电流最大可达25ma。
2.开漏输出 i2C(I2C_SDA),SMBus,邓总线判断总线占用状态。
开漏输出:适合做电流型的驱动,其吸收电流能力较强。当CPU输出逻辑 “0”时,io端口输出低电平,当CPU输出逻辑“1”时,该引脚处于开楼,也就是浮空状态(高阻态),如果想输出高电平则必须杰入上拉电阻。同时io口可以由外部电路改变为低电平或不变,即可读io输入电平变化,实现了io端口的准双向功能
3.复用推挽输出 常见的片内外设(USART_TX引脚/SPI/PWM输出等等)
复用推挽输出:在stm32中,一个引脚通常可作为普通的gpio来使用,但通常有多个复用模块对应着同一个引脚,那么当这个gpio作为内置外设引脚时,就叫做复用模式。
4.复用开漏输出 常见的片内外设(I2C/SMBus等等)
复用开漏输出:与开漏输出特性一致,只不过选用了引脚复用功能。
仅仅学习,转载至STM32开发(5)----CubeMX配置GPIO_疯狂飙车的蜗牛的博客-CSDN博客