GPIO的8种工作模式

一、8种工作模式

二、IO端口的基本结构

下面是一张F1的IO的结构图。

圆圈 2是芯片内部的上下拉电阻, 输入数据寄存器简称IDR ,cpu读IDR就可以知道外面的是高电平还是低电平,单片机IO口输出的高低电平主要依靠P-MOS和N-MOS,输出数据寄存器简称ODR ,位设置清除寄存器BSRR

如果IO输入5V电压,VDD为3.3V,VSS为0V,圆圈1部分的上半部分通路,下半部分不同路,上半部分就会因为电流过大烧掉保护二极管,-5V同理,保护二极管的能力比较弱,不能过多依赖。

施密特触发器

施密特触发器就是一种整形电路,可以将非标准方波,整形成方波。

特点: 当输入电压高于正向阈值电压,输出为高; 当输入电压低于负向阈值电压,输出为低; 当输入在正负向阈值电压之间,输出不改。

P-MOS和N-MOS

MOS管是压控型元件,通过控制栅源电压( Vgs )来实现导通或关闭。

G:栅极,S:源极,D:漏极

P-MOS: VGS<0 导通,N-MOS: VGS>0 导通

三、4种输入模式

输入浮空

上下拉电阻关闭,施密特触发器打开,双mos管关闭,路线如红笔所示。

**特点:**空闲时,IO状态不确定,由外部环境决定。3.3V时数据寄存器IDR为1,0V时数据寄存器IDR为0。

输入上拉

上拉电阻打开,下拉电阻关闭,施密特触发器打开,双mos管关闭,路线如红笔所示。

**特点:**空闲时,IO状态为高电平。3.3V时数据寄存器IDR为1,0V时数据寄存器IDR为0。

输入下拉

上拉电阻关闭,下拉电阻打开,施密特触发器打开,双mos管关闭,路线如红笔所示。

**特点:**空闲时,IO状态为低电平。3.3V时数据寄存器IDR为1,0V时数据寄存器IDR为0。

模拟功能

上拉电阻关闭,下拉电阻关闭,施密特触发器关闭,双mos管关闭,路线如红笔所示。

**特点:**专门用于模拟信号的输入和输出。

四、4种输出模式

开漏输出

上拉电阻关闭,下拉电阻关闭,施密特触发器打开,P-MOS始终不导通,往输出数据寄存器ODR位写0,N-MOS导通,写1,N-MOS不导通,路线如红笔所示。

**特点:**这种模式可以读IO输入引脚的高低电平,不能输出高电平,必须有外部上拉才能输出高电平。

开漏式复用功能

上拉电阻关闭,下拉电阻关闭,施密特触发器打开,P-MOS始终不导通路线如红笔所示。

**特点:**这种模式可以读IO输入引脚的高低电平,不能输出高电平,必须有外部上拉才能输出高电平,由其他外设控制输出。

推挽输出

上拉电阻关闭,下拉电阻关闭,施密特触发器打开,往输出数据寄存器ODR位写0,N-MOS导通,写1,N-MOS不导通,路线如红笔所示。

**特点:**这种模式可以读IO输入引脚的高低电平,这种模式可以输出高低电平,驱动能力强。

推挽式复用功能

上拉电阻关闭,下拉电阻关闭,施密特触发器打开0。

**特点:**这种模式可以读IO输入引脚的高低电平,这种模式可以输出高低电平,驱动能力强,由其他外设控制输出。

小结

希望大家掌握这8种工作模式,在后期进行配置的时候非常重要。

相关推荐
AI的探索之旅3 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao3 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch4 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my5 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯5 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学7 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
CedarQR7 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json
萌动的小火苗7 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
振浩微433射频芯片8 小时前
工业遥控器总在关键时刻“掉链子”?——433MHz芯片方案如何破局
网络·单片机·嵌入式硬件·物联网·工业遥控
blevoice9 小时前
抖抖燃脂机单 AC6966B 主控调试踩坑:Type-C 整机供电喇叭无声排障
c语言·开发语言·单片机