学习内容:配置GPIO输出初始化顺序
MODER(输出模式)OTYPER(输出类型)OSPEEDR(输出速度)PUPDR(是否上拉)ORD(输出内容)/BSSR(端口置位/复位)
笔记:
GPIO结构(模拟电路知识)
1&2、保护二极管及上、下拉电阻
钳制I/O口的输入输出,通过“上拉/下拉寄存器GPIOx_PUPDR”控制引脚的上、下拉以及浮空模式。
3、P-MOS管和N-MOS管
线路经过一个由P-MOS和N-MOS管组成的单元电路。这个结构使GPIO具有了“推挽输出”和“开漏输出”两种模式。
推挽模式:
在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。
开漏模式:
开漏输出一般应用在I2C、SMBUS通讯等需要“线与”功能的总线电路中。除此之外,还用在电平不匹配的场合,如需要输出5伏的高电平。开漏类型不能直接输出高电平,要输出高电平还要在芯片外部接上拉电阻
第一个作用是,配合上拉电阻控制输出电压。
第二个作用是实现“线与”,用几个GPIO去控制一个输出,只有全关闭时才能被上拉为高电平。
4、输出数据寄存器
寄存器GPIOx_ODR输出,置位/复位寄存器GPIOx_BSRR”可以通过修改输出数据寄存器的值
GPIO工作模式:
1、输入模式(上拉/下拉/浮空):数据寄存器每隔1个AHB1时钟周期更新一次,可通过输入数据寄存器GPIOx_IDR读取I/O状态。其中AHB1的时钟如按默认配置一般为180MHz;
2、输出模式(推挽/开漏,上拉/下拉):输出数据寄存器GPIOx_ODR可控制I/O输出高低电平。此时施密特触发器是打开的,即输入可用,通过输入数据寄存器GPIOx_IDR可读取I/O的实际状态。
通过设置“模式寄存器GPIOx_MODER”可配置GPIO的输入/输出/复用/模拟模式,
“输出类型寄存器GPIOx_OTYPER”配置推挽/开漏模式,
配置“输出速度寄存器GPIOx_OSPEEDR”可选2/25/50/100MHz输出速度,
“上/下拉寄存器GPIOx_PUPDR”可配置上拉/下拉/浮空模式
遇到的问题:
参考: