欢迎光临散文网 会员登陆 & 注册

IO接口

2022-07-07 22:25 作者:会整活的剑人  | 我要投稿

一个图连带着复习下微机和数电.

GPIO

基本上所有的STM32的GPIO都长这样,最外面是保护二极管和上下拉电阻(可控),然后连输入驱动器和输出驱动器.

4个输入模式:

a.模拟输入 信号直接走analog那一支,只有在当前引脚配置成ADC的时候使用.

b.上拉输入 上拉电阻打开,输入信号走schmitt触发器进来.对于按键检测功能,如果没有输入为高电平,有输入会拉低.

c.下拉输入 和上拉相反,下拉电阻打开.输入信号也是走schmitt触发器进来.对于按键检测功能,如果没有输入为低电平,有输入会拉高.

d.浮空输入 上拉电阻和下拉电阻全部关闭,输入信号直接是走schmitt触发器进来,电压是不确定的,用于UART等串行通信.

4个输出模式

推拉输出 开漏输出 复用推拉输出 复用开漏输出

推拉输出:两个MOS管都工作,直接出高电平/低电平.驱动能力一般.

复用功能:SPI,PWM,SDIO等

开漏输出:和OC门类似.只有NMOS管工作(注意PMOS上那个大叉),不能直接出高电平/低电平,需要配合外面的上拉电阻工作,输出电平可调,负载能力也可调.自带"线与".用于IIC等.

复用功能:IIC

STM32程序(HAL)库用法:不同的硬件可能有差异,下面给的是针对STM32H7的HAL库

先查表确定复用功能,如果要复用就在GPIO_InitTypeDef结构里面填上复用的功能(IIC/SPI/UART/TIM/...)并配置成"复用推拉输出".IIC注意是复用开漏输出.如果是普通输出就填GPIO_MODE_OUT_PP(推拉输出)或者GPIO_MODE_OUT_OD(开漏输出).如果是按键根据原理图配置上拉输入或者下拉输入,也可同时绑定外部中断.

Speed点成高速(IIC的点成低速).

Pull根据需求打开上拉或者下拉或者关闭.

Pin是初始化的引脚.可以用位运算一次初始化一堆引脚.

举个栗子

把E13,E14,E15,E12配置成推拉输出

或者是配置IIC的回调函数 把B8,B9复用成I2C1.把B10,B11复用成I2C2


IO接口的评论 (共 条)

分享到微博请遵守国家法律