当前位置: 首页 > news >正文

【外设零基础通用教程】GPIO 下

【外设零基础通用教程】GPIO 下

  • 使用方法
    • GPIO 值
      • 输入读取值
      • 输出设置值
  • GPIO输入输出应用
    • GPIO输入应用
    • GPIO输出应用
    • 文档使用
  • 理论补充
    • 输出方式
      • 推挽输出
      • 开漏输出

上篇连接:【外设零基础通用教程】GPIO 上,主要是在做视频的时候,发现上篇理论很多,分开的话结构清晰一些,更方便观看。

虽然我们定义GPIO的输入输出,那我们这种按键和LED都有两种状态,按下了和没按下,亮了和没亮,这怎么表示?


使用方法

GPIO 值

在电子电路中,分别用1和0记录电压高低状态!!!

#对于GPIO的输入,可以直接读取:cs.value()  # 返回1或者0#对于GPIO的输出,我们可以使用下面方法控制:cs.high()    #设置高电平
cs(1)          # 1为高电平
cs.low()     #设置低电平
cs(0)          # 0为低电平

输入读取值

比如说,按钮按下后给了开发板一个值1,开发板收到这个状态的得时候就知道这个按键被按下了。
那么我按下的时候读取的值就为1。其实就是简单的记录状态。

输出设置值

这个理解就简单了,LED收到高电平信号1的时候就量,低电平0的时候就灭。所以呀我们就设置这个引脚的高低状态就行了~

注意:上面仅是GPIO这个外设引脚可以这样理解,像什么IIC,SPI这种,这么理解可能就~

GPIO输入输出应用

GPIO输入应用

祖传按键

from pyb import Pin
#将 USR 按键-"X17"配置为输入方式
p_in = Pin('X17', Pin.IN, Pin.PULL_UP)
p_in.value()  

在这里插入图片描述

GPIO输出应用

祖传点灯

from pyb import Pin#将 LED(1)-"A13"配置成推挽输出模式
p_out=Pin('A13',Pin.OUT_PP)#点亮 LED(1)红灯
p_out.high()  

在这里插入图片描述
好了,我们现在就可以直接做简单按键控制和LED灯控制了。~就这么简单。

文档使用

我们之前说过,由于封装不同,GPIO的写法也不同。所以买板子之前一定先看看文档。如micpython和maixpy对GPIO的写法如下(这俩都是python哈)
在这里插入图片描述

理论补充

输出方式

GPIO的输出和内部MOS关的开关有关,如下图。可知输出有3种状态。
在这里插入图片描述
分别是高电平,低电平,浮空/高阻态。

冒烟状态就是直接G了,厂家要出厂这种开发板,不得被打死。这里指代不会出现的情况,不做考虑

推挽输出

推挽输出,电子专业名词,一般出现在推挽放大器电路中,可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

在这里插入图片描述
有高低信号状态的叫推挽

VCC是电,开发板内部给传感器放电就是高电平
GND是地,是传感器给开发板内部放电就是低电平
“高电流向低电doge 上面把是付出把电推出去,下面是回首掏简称挽”
简单这么理解就行了。

开漏输出

开漏输出,开漏电路概念中提到的"漏"就是指MOS FET的漏极。同理,开集电路中的"集"就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。

在这里插入图片描述
有低电和悬空/高阻态状态的叫开漏

上面的P-MOS不是没有了,而是这种状态下和P-MOS没啥关系,为了方便看,我给删了。
你瞅瞅,现在的情况是只有地(GND)只能传感器给他电,有低电平状态。

如果N-MOS关掉后相当于电阻无限大(谁也不给谁电,谁也动不了,相当于没有电流在动。)所以这个状态下,输出的是低电平和浮空/高阻态。

所以明白为什么我们日常使用GPIO输出是,定义的推挽模式了么~

相关文章:

【外设零基础通用教程】GPIO 下

【外设零基础通用教程】GPIO 下使用方法GPIO 值输入读取值输出设置值GPIO输入输出应用GPIO输入应用GPIO输出应用文档使用理论补充输出方式推挽输出开漏输出上篇连接:【外设零基础通用教程】GPIO 上,主要是在做视频的时候,发现上篇理论很多&am…...

在window上安装python

在Windows上安装python 1.进入python官网https://www.python.org/ 下载配置环境,点击上方downloads,根据系统选择python环境下载(选择windows) 往下拉查找需要的版本并下载 下载后双击就可以安装python了 如何检验是否安装成功 通过【winr】调出【运行】弹窗,输…...

[hive SQL] 预约业务线

这两天有个数据需求,记录一下。 原始需求说明产品写得很乱不清晰确认了半天无语死了(开始骂人),直接列转换后的问题了 问题1: 现有一张办事预约服务记录表reservation_order,包含字段用户id、服务名称、服务…...

LNMP架构和论坛搭建以及一键部署

数据流向 一、Nginx服务安装 1、关闭防火墙 [rootking ~]# systemctl stop firewalld [rootking ~]# systemctl disable firewalld [rootking ~]# setenforce 0 2、将所需软件包拖入/opt目录下 3、安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make 4、创建运…...

RK3568平台开发系列讲解(设备驱动篇)V4L2程序实现流程

🚀返回专栏总目录 文章目录 一、V4L2 进行视频采集二、命令标识符三、V4L2程序实例3.1、打开设备3.2、查询设备属性3.3、显示所有支持的格式3.4、设置图像帧格式3.5、申请缓冲区3.6、将申请的缓冲帧从内核空间映射到用户空间3.7、将申请的缓冲帧放入队列,并启动数据流3.8、启…...

人工智能中的顶级会议

当搭建好了AI领域的知识架构,即具备了较好的数学、编程及专业领域知识后,如果想在AI领域追踪前沿研究,就不能再只看教材了。毕竟AI领域的发展一日千里,教材上的知识肯定不是最新的。此时,应该将关注的重点转向AI领域的…...

【Python OpenCV】第六天:图像的基础操作

文章目录 一、本期目标二、获取并修改像素值三、获取图像属性(1)img.shape(2)img.size(3)img.dtype四、图像 ROI五、拆分及合并图像通道六、为图像扩边(填充)一、本期目标 获取像素值并修改获取图像的属性(信息)图像的 ROI图像通道的拆分及合并几乎所有这些操作与 Nu…...

2022年陕西省职业院校技能大赛“网络搭建与应用”赛项竞赛试题

2022年陕西省职业院校技能大赛 “网络搭建与应用”赛项 竞赛试题 竞赛说明 一、竞赛内容发布 “网络搭建与应用”赛项竞赛共分三个部分,其中: 第一部分:网络搭建及安全部署项目(500分) 第二部分:服务器配置及应用项目(480分) 第三部分:职业规范与素养(20分) 二、竞赛…...

面经-01

面试java开发工程师 常用数据结构,区别及使用场景 以下是一些常用的数据结构,它们的区别以及适用场景: 数组 (Array): 区别:数组是一种连续内存空间的数据结构,具有固定的大小,用于存储相同类型…...

c/c++:visual studio的代码快捷键,VS设置自定义默认代码,使用快捷键

c: 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所知道的周边的会c的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg 提…...

mysql基本语法

-- 显示所有数据库 show databases;-- 创建数据库 CREATE DATABASE test;-- 切换数据库 use test;-- 显示数据库中的所有表 show tables;-- 创建数据表 CREATE TABLE pet (name VARCHAR(20),owner VARCHAR(20),species VARCHAR(20),sex CHAR(1),birth DATE,death DATE );-- 查看…...

出苗率相关论文

文章目录2021Automatic UAV-based counting of seedlings in sugar-beet field and extension to maize and strawberry(Computers and Electronics in Agriculture)2022Detection and Counting of Maize Leaves Based on Two-Stage Deep Learning with UAV-Based RGB Image&am…...

【Kubernetes】StatefulSet对象详解

文章目录简介1. StatefulSet对象的概述、作用及优点1.1 对比Deployment对象和StatefulSet对象1.2 以下是比较Deployment对象和StatefulSet对象的优缺点:2. StatefulSet对象的基础知识2.1 StatefulSet对象的定义2.1.1 下表为StatefulSet对象的定义及其属性&#xff1…...

选择排序与堆排序

全文目录引言选择排序思路实现堆排序思路实现总结引言 从这篇文章开始,将介绍几大排序算法:选择排序、堆排序、直接插入排序、希尔排序、冒泡排序、快速排序、归并排序以及计数排序。 在本篇文章中要介绍的是选择排序与堆排序,它们都属于选…...

AI绘图体验:想象力无限,创作无穷!(文生图)

基础模型:3D二次元 PIXEL ART (1)16-bit pixel art, outside of caf on rainy day, light coming from windows, cinematic still(电影剧照), hdr (2) 16-bit pixel art, island in the clouds, by studio ghibli(吉卜力工作室…...

【图片分割】【深度学习】Windows10下SAM官方代码Pytorch实现

【图片分割】【深度学习】Windows10下SAM官方代码Pytorch实现 提示:最近开始在【图片分割】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录【图片分割】【深度学习】Windows10下SAM官方代码Pytorch实现前言SAM模型运行环境安装打开cmd,执行下面的…...

“我用 ChatGPT 造了一个零日漏洞,成功逃脱了 69 家安全机构的检测!”

一周以前,图灵奖得主 Yoshua Bengio、伯克利计算机科学教授 Stuart Russell、特斯拉 CEO 埃隆马斯克、苹果联合创始人 Steve Wozniak 等在内的数千名 AI 学者、企业家联名发起一则公开信,建议全球 AI 实验室立即停止训练比 GPT-4 更强大的模型&#xff0…...

Compose (14/N) - 附带效应 EffectPI

一、概念 纯函数函数与外界交换数据只能通过形参和返回值进行,不会对外界环境产生影响。副作用函数内部与外界进行了交互,产生了其它结果(如修改外部变量)。组合函数是用来声明UI的,所以跟UI描述不相关的操作都是副作…...

云日记个人中心项目思路

验证昵称的唯一性 前台: 昵称文本框的失焦事件 blur 1. 获取昵称文本框的值 2. 判断值是否为空 如果为空,提示用户,禁用按钮,并return 3. 判断昵称是否做了修改…...

docker容器的相关环境及创建镜像1

一、容器管理工具介绍 LXC 2008 是第一套完整的容器管理解决方案 不需要任何补丁直接运行在linux内核之上管理容器。创建容器慢,不方便移植 Docker 是在LXC基础上发展起来的。拥有一套容器管理生态系统 生态系统包含︰容器镜像、注册表、RESTFUL API及命令行操作界…...

MonoGame内存使用监控:自定义性能计数器实现终极指南

MonoGame内存使用监控:自定义性能计数器实现终极指南 【免费下载链接】MonoGame One framework for creating powerful cross-platform games. 项目地址: https://gitcode.com/gh_mirrors/mo/MonoGame MonoGame作为一款强大的跨平台游戏开发框架,…...

CircuitPython音频输出与PWM伺服电机控制实战指南

1. 项目概述与核心价值如果你正在用像Adafruit的Feather M0、ItsyBitsy或者Circuit Playground Express这类小巧的微控制器板子做项目,想让它们“开口说话”或者“动手干活”,那么音频输出和伺服电机控制就是你绕不开的两项核心技能。前者能让你的项目发…...

RAG向量存储原理(余弦相似度、欧氏距离、ANN近似最近邻、HNSW原理、混合检索)

文章目录深入理解 RAG 向量存储原理一、什么是 RAG?二、RAG 的核心流程三、什么是向量(Vector)四、Embedding 的本质五、向量空间(Vector Space)六、为什么高维向量能表达语义七、Chunk(文本切块&#xff0…...

ARM CoreSight调试架构中的ROM表解析与应用

1. ARM CoreSight调试架构中的ROM表解析在嵌入式系统调试领域,ARM CoreSight架构已经成为事实上的行业标准。作为该架构的核心组件,ROM表(ROM Table)扮演着系统调试资源的"导航地图"角色。想象一下,当你面对…...

2026年青岛GEO优化服务商TOP5,哪家性价比最高?

行业痛点分析青岛地区GEO(生成式引擎优化)领域面临显著的技术挑战。据行业调研显示,超65%的本地企业存在“错配展现”问题,非目标区域消耗了20%以上的营销预算,导致获客成本平均上升30%。同时,AI大模型&…...

树莓派CharliePlex LED矩阵驱动:从I2C通信到Python动画实战

1. 项目概述与硬件解析如果你手头有一块树莓派,想给它加个能显示点动态信息、甚至能播放小动画的“眼睛”,那Adafruit的CharliePlex LED矩阵Bonnet绝对是个好玩又实用的选择。这东西本质上是一个直接插在树莓派GPIO排针上的扩展板(Bonnet&…...

Wan Tasks API 集成与使用指南

简介 Wan Tasks API 是 Ace Data Cloud 提供的一项功能强大的服务,允许开发者通过输入任务 ID 来查询视频生成任务的执行状态。这项 API 主要用于与 Wan Videos Generation API 配合使用,帮助用户获取视频生成任务的实时信息,确保用户能够高…...

使用pretty-log美化终端日志:提升开发调试效率的实践指南

1. 项目概述:告别混乱,拥抱优雅的日志输出如果你是一名后端开发者,或者经常和服务器、命令行工具打交道,那么对下面这种日志格式一定不会陌生:[2024-05-27 14:30:22] [ERROR] [main] com.example.service.UserService …...

ChatGPT对话转Anki卡片:自动化工具实现与高效学习流搭建

1. 项目概述:从ChatGPT对话到Anki卡片的自动化桥梁最近在整理学习笔记时,我发现了一个效率痛点:和ChatGPT的对话里充满了高质量的知识点,但要把它们变成可以复习的Anki卡片,过程却异常繁琐。复制、粘贴、手动制卡&…...

深入解析WasmEdge:高性能WebAssembly运行时的架构设计与工程实践

1. 项目概述:一个高性能的WebAssembly运行时如果你最近在关注云原生、边缘计算或者微服务架构,大概率会听到WebAssembly(简称Wasm)这个名字。它早已不再是那个只能在浏览器里跑一跑JavaScript的“玩具”了。如今,Wasm正…...