注:GPIO命名是GPIOA,GPIOB.....每个GPIO都有16个引脚,PA0,PA1.....PA15。
寄存器就是特殊的存储器,内核通过APB2总线对寄存器进行读写,完成输出电平和读取电平功能。 每一位对应一个引脚,输出寄存器写1,对应引脚输出高电平;写0,输出低电平。STM32寄存器是32位,但是该端口只有16位(低16位有,高16位没有)。驱动器增加驱动能力。
注:左侧为寄存器,中间为驱动器,右侧为某一引脚。上边为输入,下边为输出部分。
右侧两个保护二极管:对输入电压限幅。上边VDD接3.3V,下边VSS接0V。
如果输入电压> 3.3V,则VDD导通(从IO口流入VDD),阻止流入内部。
如果输入电压<0V,则VSS有电流流入引脚,不会流入左侧。保护左侧电路。
驱动器右上方两个开关处,上开关导通,下开关断开为上拉输入模式。上开关断开,下开关导通为下拉输入模式。若两个都断开,为浮空输入模式。
斯密特触发器(图中肖特基触发器是翻译错误的),对输入电压进行整形,如果输入电压大于某一阈值,输出就会瞬间升为高电平。如果输入电压小于某一阈值,输出就会瞬间降为低电平。
如图:
输出控制之后有MOS管,信号控制MOS管。可选择推挽,开漏或关闭三种方式。数据寄存器为1时,上管导通,下官断开,输出接VDD,输出高电平。数据寄存器为0时,上管断开,下官导通,输出接VSS,输出低电平。推挽模式下,STM32对IO口有绝对控制权,高低电平由STM32说的算。
开漏模式下,PMOS无效,只有NMOS工作,数据为1时,下管断开,输出断开,高阻模式。
开漏模式下,PMOS无效,只有NMOS工作,数据为0时,下管导通,输出接VSS,输出高电平。
查找寄存器原理图:
右上为PNP三极管,左侧为基极,右上为发射极(带箭头),右下为集电极。基极给低电平,三极管导通。
左下为NPN三极管,左侧为基极,右下为发射极(带箭头),右上为集电极。基极给高电平,三极管导通,低电平断开。
面包板:面包板正面圈圈部分为同一作业位置,如果某一位接触不良,可连接在其他位置。原理参考面包板背面。