嵌入式02 STM32 实验02 端口输入输出各4种模式
GPIO(General-purpose input/output 通用目的输入/输出端口)
电压(A模拟量)与电平(D数字量)
GPIO 8种工作模式(输入四种、输出四种)
1、GPIO_Mode_AIN 模拟输入
2、GPIO_Mode_IN_FLOATING 浮空输入
3、GPIO_Mode_IPD 下拉输入
4、GPIO_Mode_IPU 上拉输入
5、GPIO_Mode_Out_OD 开漏输出
6、GPIO_Mode_Out_PP 推挽输出
7、GPIO_Mode_AF_OD 复用开漏输出
8、GPIO_Mode_AF_PP 复用推挽输出
一、模拟输入

黄色高亮部分表示数据的传输通道,阴影的部分不工作。
模拟输入是指传统方式的输入.数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。
二、浮空输入

图中施密特触发器是打开的,上下拉电阻断开,IO口的状态可以直接送到输入寄存器中,CPU可以直接读取输入寄存器。
三、下拉输入

下拉输入与前面的浮空输入模式相比,仅仅是在数据通道下部,接入一个下拉电阻,STM32中,该下拉电阻的阻值介于30-50K。
下拉输入就是把电压拉低,拉到GND。与上拉原理相似。
四、上拉输入

上拉输入与前面的浮空输入模式相比,仅仅是在数据通道上部,接入一个上拉电阻,STM32中,该上拉电阻的阻值介于30-50K。
上拉就是把电位拉高,比如拉到VDD。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分
五、开漏输出

如图,输出控制电路控制信号来源于CPU,当输出信号1,则PMOS不被激活,NMOS高阻,输出端口的电平由外部的上下拉电阻决定,当接上拉电阻,则端口为高电平,当接下拉电阻,则端口为低电平;当输出控制电路输出0,则PMOS不被激活,NMOS导通,则端口电平拉低到VSS上。
输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
简言之:
输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。
输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);可以读IO输入电平变化,此模式可以把端口作为双向IO使用。
六、推挽输出

可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。
简言之:
输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。
输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。
七、八、复用开漏输出/复用推挽输出

可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。
复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
如图,输出控制电路信号来源于片上外设模块,当输出信号1,则PMOS导通,NMOS截止,输出端口的电平由外部的上下拉电阻决定,当接上拉电阻,则端口为高电平,当接下拉电阻,则端口为低电平;当输出控制电路输出0,则PMOS截止,NMOS导通,则端口电平拉低到VSS上。
输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
输入保护电路
当输入信号电压为正时,且超过(VDD)+0.7V,D1导通,导通后,输入端的电压就稳定在(VDD)+0.7V了,而不会因输入信号电压增加而增加,就起到了保护作用。
同理,当输入信号电压为负时,且超过了(VSS)-0.7V,D2导通,输入端的电压也稳定在(VSS)-0.7V。
这样,只要设置VDD,VSS的电压大小,就可以确定运放输入端的保护电压大小
推挽和开漏可以参考该文章:https://blog.csdn.net/qq_27016651/article/details/83096126
嵌入式02 STM32 实验02 端口输入输出各4种模式的更多相关文章
- 嵌入式02 STM32 实验01 端口复用和重映射
内设与外设: 端口复用和端口重映射都需要了解内设和外设,那么什么是内设?什么是外设? 内设:单片机内部集成的功能一般包括:串口模块.SPI模块(Serial Peripheral Interface ...
- 嵌入式02 STM32 实验04跑马灯
开学STM32 跑马灯的实验主要就是了解GPIO口的配置及使用,我这里是使用库函数进行编程,主要需要设置以下两方面: 1.使能需要使用的IO口的时钟,一共有A.B.C.D.E.F.G七组IO口 2.初 ...
- 嵌入式02 STM32 实验06 按键
按键实验和前面的跑马灯.蜂鸣器主要的区别就是这个是读取外部的输入信号,之前的实验都是对外部输出信号. 一.硬件设计 本实验的硬件为三个按键.两个lED(LED0.LED1).一个蜂鸣器(BEEP). ...
- 嵌入式02 STM32 实验05 蜂鸣器
蜂鸣器:是一种一体化结构的电子讯响器.主要分为分压式蜂鸣器和电磁式蜂鸣器两种类型. 一.有源/无源蜂鸣器(不是指是否带电源,而是有没有自带震荡电路) 1.有源蜂鸣器:有源蜂鸣器自带震荡电路,一通电就会 ...
- 嵌入式02 STM32 实验11 NVIC和中断总结
一.基础知识 1.cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断 2.STM32只有84个中断,包括16个内核中断和68个可屏蔽中断 3.STM32F103上只有60个 ...
- 嵌入式02 STM32 实验10 定时器中断
优秀文章 https://blog.csdn.net/qq_38351824/article/details/82619734 一.STM32通用定时器(TIM2.TIM3.TIM4和TIM5共四个通 ...
- 嵌入式02 STM32 实验08 外部中断
一.中断 由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理事件的一个程序.该程序执行完成后,CPU接着执行被暂停的程序.这个过程称为中断.(我正在捉泥鳅,但是我妈喊我回家吃饭,我必须回家 ...
- 嵌入式02 STM32 实验07 串口通信
STM32串口通信(F1系列包含3个USART和2个UART) 一.单片机与PC机串行通信研究目的和意义: 单片机自诞生以来以其性能稳定,价格低廉.功能强大.在智能仪器.工业装备以及日用电子消费产品中 ...
- 嵌入式02 STM32 实验03 时钟系统
时钟系统是处理器的核心,所以认真学习时钟系统是必要的,有助于深入理解STM32. 由于STM32的外设很多,有的外设不需要太高的时钟频率,同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也越弱,所以对 ...
随机推荐
- LeetCode 1239. Maximum Length of a Concatenated String with Unique Characters
原题链接在这里:https://leetcode.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters ...
- 表单提交 curl和浏览器方式
表单被提交时,每个表单域都会被Url编码之后才在被发送. 浏览器每次向服务器发送url时,会进行编码,然后web服务器再进行解码. 所以,理论上,curl模拟登陆时,所传参数都必须urlencode一 ...
- 使用javascript获取父级元素
之前jquery用多了习惯了它那简洁的写法,后来使用ES6进行编写的时候,需要使用类似$(this).parent();来获取点击元素所属的父级元素时发现,es6中的class下的this指向是cla ...
- httpd.exe你的电脑中缺失msvcr110.dll怎么办(WIN2008服务器环境装WAMP2.5出现的问题)
httpd.exe你的电脑中缺失msvcr110.dll怎么办 去微软官方下载相应的文件 1 打开上面说的网址 Download and install, if you not have it alr ...
- Windows 安装R
下载 R 的安装包 双击 安装包 进行安装 安装完成 测试 修改 R 中的CRAN镜像 添加到 Windows 的环境变量中 测试
- SSM框架中,ContextLoaderListener与RequestContextListener的联系与区别
在整合SSM框架时,我们要在web.xml文件中对spring进行相关配置. 首先要配置一个<context-param></context-param> <!--加载s ...
- 关于SpringCloud、SpringBoot简单讲解
什么是Spring Boot 用我的话来理解,Spring Boot就是整合了框架的框架,它让一切依赖都变得有序简单,你不用操心A.jar是什么版本,又依赖哪些版本的jar,它默认配置了很多框架的使 ...
- javacpp, javacv: 封装了FFmpeg、OpenCV等计算机视觉编程人员常用库的接口
jvavacpp: 一个java调用jni的库,支持安卓. javacv: 封装了FFmpeg.OpenCV等计算机视觉编程人员常用库的接口,可以通过其中的Utility类方便的在包 ...
- mqtt 与 MQ 的区别
mqtt 与 MQ 的区别: mqtt:一种通信协议,类似人类交谈中的汉语.英语.俄语中的一种语言规范MQ:一种通信通道,也叫消息队列,类似人类交谈中的用电话.email.微信的一种通信方式json: ...
- Centos7安装PHP、安装MySQL、安装apache
Centos7安装PHP.MySQL.apache 这里今天教大家如何在centos7安装PHP,apache,mysql. 首先我们需要先安装centos7,我们可以在我们的电脑上安装一个虚拟机,在 ...