首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GPIO常见名词——推挽、开漏、浮空、、下拉、高阻态

1、前言 最近有不少初入嵌入式的小伙伴问我,推挽输出,开漏输出是什么,啥是浮空输入,和下拉输入又该怎么区分,啥时候需要用?鉴于此前也没有写过这方面的博客,今天抽空来进行补充一下。...2、输出输入GPIO GPIO是指通用输入输出(General Purpose Input/Output),是一种通用的数字输入输出接口,可以通过程序控制来读取或控制外部设备。...CMOS,一般mos的栅极为输入,漏极为输出 2.1 基本类型 输出: 开漏输出(OP) 推挽输出(PP) 复用开漏 复用推挽 输入: 浮空输入 下拉输入 输入 3....为了实现完整的输出功能,开漏输出通常需要结合外部电阻。当输出端口处于高阻态时,外部电阻将输出端口拉高至所需的高电平。...优点: 可实现电平转换,输出电平取决于电阻电源 可以实现IO的线与 缺点: 高电平的驱动能力差,取决于外部电阻 电平切换速率取决于外部电阻 3.3 高阻态 关于开漏输出的高阻态,他通常用在总线上

2.8K70
您找到你想要的搜索结果了吗?
是的
没有找到

Linux学习系列六:操作GPIO

有兴趣购买的朋友,大家去下方他们的淘宝店购买即可: https://s.click.taobao.com/X8mza8w 要控制的是板子底板的D2 和D3 两个LED指示灯 ?...2.2.软件 1)需要在上一篇《Linux学习系列五:Nand Flash根文件系统制作》的基础改动下Linux内核配置,生成新的970uimage并烧写到板子里。...大家可以执行reboot指令或者断电再重新电看一下效果。shell脚本因为不需要编译即可执行,所以使用非常方便,大家平时可以多用用。...3)使用和板子里自带文件系统匹配的交叉工具链来重新编译 arm-linux-gcc gpio_demo.c -o gpio_demo 这时它会报一个错误: ?...再次将gpio_demo放到板子,运行,就不再报错了,可以看到LED D3灯在不断的闪烁。 5 结束语 本篇为大家介绍了LinuxGPIO的使用,同时也穿插着介绍shell脚本的些许知识。

3.1K20

电阻,下拉电阻

今天,来介绍下、下拉电阻。 其实,很多时候我们说到上,下拉的时候,都是比较模糊的,要么是根据以往的原理图,要么是根据datasheet的,确实,这样的效率是最高的,也非常不容易出错。...那么都应该知道P0口,它作为输出口时候需要加上电阻,爱动手的同学就会知道当初洞洞板(万用板)、插件电阻、插件电解电容、插件陶瓷电容、插件12Mhz晶振,插座,块头很大的89c51,还有黑色的插件排阻。...那么我们从这里入手: 1:开漏端口的 51单片机的P0口,IIC的SCL与SDA都是开漏的。...这时候电阻的作用就非常大了: 理论上高电平的驱动能力由电阻的大小决定,但也不能随便取值,它应当受到输出端Vol,Iol,和输入端IIH,IIL,Vih,Vil等的制约,具体的取值公式可以参考往期文章...7:,下拉 分为弱(weak pull-up),强(strong pull-up)。 弱下拉,强。 强弱没有标准,只是一个对照。

67210

菜鸟手册(4):在Jetson NANO使用GPIO

我们使用GPIO与NVIDIA Jetson Nano的外部设备进行通信. 介绍 关于Jetson Nano的一个好处是有一个扩展头,它对通用输入输出(GPIO)非常有用。...您可能已经听说过,Jetson NanoGPIO引脚布局与Raspberry Pi(RPi)的40引脚布局兼容。...话虽如此,请注意Jetson NanoGPIO扩展接头的电气特性与Raspberry Pi不同。特别是,Jetson Nano在GPIO引脚上的流动电流远低于RPi。...我们将在Jetson的引脚2把红线连接到+5V,在引脚6把黑线连接到GND,在引脚12把晶体管基座连接到基极电阻。下面的演示示例选择Pin 12。 ?...79 > /sys/class/gpio/unexport # Query Status $ cat /sys/kernel/debug/gpio 在上面的代码中,79指的是Linux sysfs

9.3K11

电阻和下拉电阻

我们可以使用上电阻或者下拉电阻将电路的电压在任何时候都保持在确定的状态下,这就是电阻和下拉电阻的作用。 下拉电阻 作用:将一个未知的电平低到稳定的低电平状态。 ?...电阻 作用:将一个未知的电平拉高到稳定的高电平状态。 ? 当S2没按下时,Input通过2个电阻和+5V连接(注意电路中并没构成回路,因此不会有压降,所以Input端依然是高电平),为高电平。...相比下拉电阻,电阻在数字电路中使用的更多。 Arduino中的电阻 Arduino的数字引脚和模拟引脚都内置了【电阻】,电阻为20K~50K欧姆,他们需要使用 代码去激活使能。...2、不建议使用13脚作为输入引脚使用,因为13脚配置了一个板载的LED灯,即便是你使能了电阻,LED等的电阻会低电压,使得引脚依然是低电平。如果你非要使用13作为输入,那就外置电阻。...使能Arduino电阻的代码: pinMode(10, INPUT); digitalWrite(10, HIGH); //激活10号引脚的电阻,因此在没有收到任何输入信号时,10号引脚一直是高电平

1.2K20

vue加载更多组件

我想,工作一段时间的都碰见过上加载更多需求,现在这种插件也蛮多的,也很多是把加载下拉刷新结合。...但是这些组件都有一个问题,就是下拉到最底部,刷新浏览器,浏览器会记住这个距离,从而触发上加载的方法。虽然这个小问题在正常情况下没什么影响,于是自己就研究研究,写了一个加载更多的组件。...要写上加载其实还分两种场景,一种是相对window,也就是相对于可视窗口,一种是在一个容器内。大部分使用场景是相对窗口,所以暂时只写了一个相对于window的。...加载原理简单来说就是判断内容是否到达底部。容器自身的高度加上距离顶部的距离就是现在整个页面的高度。整个页面的高度减去可视窗口的高度再减去滚动条移动的距离,当接近0的时候就是到达底部的时候。...明白了这个原理上加载就很好实现了。 标签: 这边使用了vue的slot插槽。

2K10

Linuxgpio接口的使用方法示例

前言 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpiogpio使用0~MAX_INT之间的整数标识,...不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用的 使用gpio...使用gpio接口需要包含#include ,在驱动中使用延时函数mdelay,需要包含#include 文件,Documentation/gpio.txt.../* GPIO OUTPUT */ void gpio_set_value(unsigned gpio, int value); int gpio_cansleep(unsigned gpio);...); } else { set_irq_type(gpio_to_irq(sw->gpio), IRQ_TYPE_EDGE_RISING); } } 参考文章 Linux中的gpio口使用方法

2.5K53

GPIO操作原理(Linux一切皆文件)

Linux 系统定义了一切皆文件的原则,甚至于硬件:磁盘,软盘,等……,这样的好处是,在不同的平台和硬件都能形成统一的调用方式。...接触过 Linux 的,应该都了解 echo "0" > test.txt 是将一个字符串 0 输入到当前目录的 test.txt 文件中,那么下面所有的操作,均基于这个操作形式。...GPIO端口 自 Linux 2.6.21 起,GPIO 作为一个基础组件包含到Linux 内,我们可以根据 GPIO 规范直接使用。...控制 GPIO 的目录位于 /sys/class/gpio。 /sys/class/gpio/export 文件用于通知系统需要导出控制的 GPIO 引脚编号。...进入GPIO18目录,该目录由一步操作产生 cd gpio18 # 查看gpio18目录 ls # active_low direction edge power subsystem uevent

3.4K11

加载下拉刷新了解下

height: 1rem;这里的高度应该与刷新文字一样高 position: fixed; z-index: 100; } 2.功能实现的重头戏是在逻辑,...this.refreshTouchMovee); this.el.removeEventListener('touchend', this.refreshTouchEnd);//具体的函数,我们直接在位置计算中看 位置计算 我们分下拉刷新,加载两块计算...,分析可得 下拉刷新的逻辑 = 当前页面的首项在屏幕中且容器向下滑动的距离大于一定值 加载的逻辑 = 当前页面已滑动到底部 好,我们直接看具体的实现逻辑代码 //代码中包含界面变化和数据更新,仔细看哦...$store.commit('bottomShowTrue');//松开后底部就biu的出现啦 if (this.bottomFlag) {//若符合上加载的条件,则直接进行数据更新...that.el.style.marginTop = that.el.style.marginTop.split('px')[0] - 5 + 'px';//如果的很长

1.7K20
领券