文章目录
引脚的信息
图中带FT的引脚就是能容忍5v的电压,不带FT的引脚就只能容忍3.3v电压
注意:其中PA15,PB3,PB4,三个端口尽量不要用做普通端口。因为这三个是调试端口。
Gpio
Gpio都是APB21的外设
•可配置为8种输入输出模式
•引脚电平:0V~3.3V,部分引脚可容忍5V
•输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
•输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等
I/O端口位的基本结构
八种Gpio模式
模式名称 | 性质 | 特征 |
---|---|---|
浮空输入 | 数字输入 | 可读取引脚电平,若引脚悬空,则电平不确定 |
上拉输入 | 数字输入 | 可读取引脚电平,内部连接上拉电阻,悬空时默认高电平 |
下拉输入 | 数字输入 | 可读取引脚电平,内部连接下拉电阻,悬空时默认低电平 |
模拟输入 | 模拟输入 | GPIO无效,引脚直接接入内部ADC |
开漏输出 | 数字输出 | 可输出引脚电平,高电平为高阻态,低电平接VSS (pmos无效) |
推挽输出 | 数字输出 | 可输出引脚电平,高电平接VDD,低电平接VSS (pmos,nmos均有效) stm32对io口有绝对控制 |
复用开漏输出 | 数字输出 | 由片上外设控制,高电平为高阻态,低电平接VSS |
复用推挽输出 | 数字输出 | 由片上外设控制,高电平接VDD,低电平接VSS |
个人理解:
上拉 下拉输入:用于给输入提供一个默认的输出电平的 接的电阻的阻值都比较大 属于弱上拉
推挽输出就是两个人轮流交替干活,不管怎样都有人在工作(即有一个mos导通)
而对于开漏输出,是只有一个人干活,只要他罢工,就没有人在工作
注意 在输入模式下输出是关闭的,而输出模式下输入可正常运转
Nmos:以P型半导体为衬底,加上两块N型半导体。
三种输出控制
- 整体读出“输出数据寄存器”,用&= |=的操作更改对应位,再写入.(软件层)
- 用“位设置/位清楚寄存器”按位更改对应位。(硬件层)
- 位带
通过寄存器配置IO口
通过视频可以学会基本的翻阅数据手册配置寄存器的能力
其中ODR寄存器用于控制 GPIOx 的输出高电平或者低电平。
也就是说既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1,GPIO 管脚为高电平,写 0 则为低电平。不过缺点是:会因中断而打断,关闭中断明显会延迟或丢失一事件的捕获,所以控制GPIO的状态最好还是用BSRR和BRR。
(详见STM32F10xxx参考手册(中文)的p115页)
Gpio Mode
GPIO_Mode值 | 模式 |
---|---|
GPIO_Mode_AIN | 模拟输入 |
GPIO_Mode_IN_FLOATING | 浮空输入 |
GPIO_Mode_IPD | 下拉输入 |
GPIO_Mode_IPU | 上拉输入 |
GPIO_Mode_Out_OD | 开露输出(out drain) |
GPIO_Mode_Out_PP | 推挽输出(push and pull) |
GPIO_Mode_AF_OD | 复用开露输出 |
GPIO_Mode_AF_PP | 模拟推挽输出 |