day2江协科技-3 GPIO


我们通过寄存器来达到读取二进制位置,存储配置、传输数据、控制状态,而驱动器则是控制指令让我们的比如说灯亮,蜂鸣器响之类的操作,还要记住一个特点是,由于我们的STM32是32位的,而我们的引脚是16位的,因此寄存器的高16位闲置,而低16位的位置对应引脚

分别针对每一个元器件进行分析

Vdd即为3.3V,而Vss即为0V,当我们的输入电压从引脚输入进去,当输入电压大于3.3V,则此时上面的二极管就能够导通,电压传到上面去了,就会保护我们的内部电路,当输入电压小于0V,则此时我们的下面二极管就会导通,则电压就会从引脚导出去,也不会进去我们的内部电路

这就是我们的上拉电阻和下拉电阻,这是可以通过我们的程序去进行配置的,这个设计,是为了让我们的I/O输入具有确定性,我们可以通过程序配置,让这个模块处于上拉状态或者下拉或者浮空状态(即哪个也不闭合)
当你的外部输入没有电压时,通过配置上拉下拉达到效果,如果有,可以做辅助效果,或则保持浮空状态

就是施密特触发器,用法很简单,就是当你的模拟输入大于上阈值的时候,你就为正,当你的模拟输入小于下阈值的时候你就为负

其中蓝色的线即为施密特触发器所改变的,而红色的线即为模拟输入

这部分就是你的输入经过处理后分别去哪

这里的位设置/清楚,就是啥呢,将指定的引脚归1或者归0,和我们之前在C语言中学到的那种方法是一致的,但是这里是直接就把让它归0或归1,很方便

这是一个输出驱动器首先一些基础知识



这三点就是最核心的需要去理解的这个电路的核心

当我们输出为1,此时即为高电平导通,此时电流从D流到S,即PMOS管导通,此时电流从Vdd流出引脚,,若输出为0,此时即为低电平导通,此时电流从S流向D,即电流从Vss流出引脚,当然这是在PMOS和NMOS都是开启状态下的时候,即推挽状态下

即为这三种
=========================================================================元器件介绍结束,下面开始分别介绍每种模式

首先前三种输入方式
其实很简单,此时输出驱动器是关闭的,然后只看输入驱动器,只需要根据程序去进行匹配是上拉还是下拉还是浮空
这个Vdd_ft不用管,明白就行

只是针对于ADC的时候
我们发现在这两种电路下,输入和输出是共存的

都在图里了
除了模拟输出,输入关闭,其他都是存在的

基本上寄存器都是高位保留,低位对应引脚,有极个别的,用到查查就行




这是三极管的一个工作原理,对于三极管来说箭头是由p指向n的,所以很明显右上就是PNP型号,而右下就是NPN结构
当右上此时基极给到负电压,则那条线路就直接导通了,蜂鸣器就响,但是给了正电压,则直接截止
