嵌入式 深入解析GPIO八种工作模式
VDD 3.3v
NRST-----复位
VDDDA,VSSA VREF± 数模转换
OSC_IN/OSC-out------8HZ HSE
OSC32_IN/OSC32_out------LSI 32.768HZ
JTAG/SWD调试接口
最小系统
除最小系统的引脚外剩下的用于GPIO--------通用的输入输出端口
GPIO的八种工作模式
GPIO基本结构左边有三个寄存器:
输出:复位置位,输出寄存器
输入:输入寄存器
组成:
①保护二极管
②输入部分(上下拉电阻+输入):上下拉电阻+施密特触发器(将不规则图形变成完整的方波信号)————>到达输入数据寄存器
------------>IO复用:不走输入数据寄存器那一条路,走复用功能输入传到网口
-------------->模拟输入
输入分为
1上拉输入(复用输入):上拉电阻工作时,IO口空闲时,默认是高电平(检测接GND)
2下拉输入(复用输入):下拉电阻工作时,IO口空闲时,默认是低电平(检测3.3V)
3模拟输入
4浮空输入:上下拉电阻不工作,引脚电平不工作
③输出部分(下半部分):两个寄存器输出一个数,输出控制部分取反:即输出寄存器写经过取反后输出为0, P-MOS导通,io口为高电平。取反输出 为1 ,N-MOS导通,io口为低电压
1推挽输出:PMOS(输出1)+NMOS(输出0) 使用最多的场景
2开漏输出:只输出低电平 PMOS不工作+NMOS工作
3复用推挽输出
4复用开漏输出
这两个不过是从串口走复用输出那条路,不从寄存器走剩下不变
一共八个工作模式
GPIO关键寄存器
1.GPIO 端口模式寄存器
每2位控制一个引脚
00---------输入
01---------输出
要第几个引脚就看他在第几位,然后 相或左移xx位,从0开始数
2.输出类型寄存器:1位有效位,0推挽,1开漏
3.输出速度寄存器(描述0变1,1变0的速度):2位有效,00:2 MHz(低速)
01:25 MHz(中速)
10:50 MHz(快速)
11:30 pF 时为 100 MHz(高速)(15 pF 时为 80 MHz 输出(最大速度))
4.GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A…I/)
00:无上拉或下拉
01:上拉
10:下拉
11:保留(预留不起作用)
5.GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A…I)
6.GPIO 端口置位/复位寄存器 (GPIOx_BSRR) (x = A…I)
1位有效位,依旧移位或运算
置位set:变成1 低16位
复位reset:变成0 高16位
7.GPIO 端口输入数据寄存器 (GPIOx_IDR) (x = A…I)
高16位用不到
低16位写入
更多推荐



所有评论(0)