内容纲要
GPIO功能框图讲解
STM32芯片中 除了ADC是3.3V以外,别的都是5V供电
tolerant 容忍的意思,
这里的5V tolerant I/O 说明其兼容3.3V,可以和ADC 的3.3v通信
GPIO功能框图讲解
1.右边I/O引脚接外部芯片,当外部电压为5V时,VDD_FT 下的保护二极管工作,电压会往上流动,从而保护芯片。
2.当I/O口接入外部芯片时,初始化的时候还不想让外部芯片工作 ( 假设外部芯片时低电平有效 ),则可以在VDD处将开关上拉,把电压上拉。
控制该上拉电阻开关是 GPIO 的PUPD寄存器,一个GPIO口有16个引脚,对应32位,2位来控制一个GPIO引脚,
- ODR端口输出寄存器
- 在之前的点亮开发板的灯的实验中,还可以通过设置
置位/复位寄存器
来控制GPIO。 BSRR(B -- Bit、S --Set、R --Reset、R --Register)
- 输出类型寄存器
- 推挽输出,IO口可以输出 01,且输出能力很强。(下方INT 代表ODR寄存器,OUT对应外部引脚。左边那个三角形是反相器,输入0 会输出1。)
MOS管内阻比较小,能相当于它直接接的电源。输出能力很强。
- 开漏输出(只能输出低电平,如果要输出高电平,必须在io口这里提供外部电源)
推挽和开楼的总结
拓展:STM32 IO 如何输出5V?
- TIP: TTL 中 超过1.8V 都代表高电平, 低于1.8V为低电平,施密特触发器将TTL转化为数字信号(整型),高电平1,低电平0
ADC就不会经过施密特触发器,直接走模拟到片上外设
第4步是输出设置默认上拉/下拉电阻,主要是为了在初始化时不影响外部设备。