GPIO相关知识点注解

2023-11-17

一、GPIO工作方式

1.1 GPIO输入

输入工作方式 输入路径
输入浮空模式 I / O I/O I/O端口-> T T L TTL TTL施密特触发器->输入数据寄存器->读入数据
输入上拉模式 I / O I/O I/O端口->上拉电阻 V D D V_{DD} VDD-> T T L TTL TTL施密特触发器->输入数据寄存器->读入数据
输入下拉模式 I / O I/O I/O端口->下拉电阻 V S S V_{SS} VSS-> T T L TTL TTL施密特触发器->输入数据寄存器->读入数据
模拟输入 I / O I/O I/O端口->模拟输入

上拉与下拉的目的:确定电平的高低状态。

1.2 GPIO输出

输出工作方式 输出路径
开漏输出模式 写->位设置位输出寄存器(控制)->输出数据寄存器,读/写(数据)<->输出数据寄存器->输出控制电路-> N − M O S {N-MOS} NMOS-> I / O I/O I/O端口
开漏复用输出模式 来自片上的外设设备->输出数据寄存器->输出控制电路-> N − M O S {N-MOS} NMOS-> I / O I/O I/O端口
推挽输出模式 写->位设置位输出寄存器(控制)->输出数据寄存器,读/写(数据)<->输出数据寄存器->输出控制电路->输出0: N − M O S {N-MOS} NMOS,输出1: P − M O S {P-MOS} PMOS-> I / O I/O I/O端口
推挽复用输出模式 来自片上的外设设备->输出控制电路->输出0: N − M O S {N-MOS} NMOS,输出1: P − M O S {P-MOS} PMOS-> I / O I/O I/O端口

推挽与开漏的区别:

  • 推挽输出:可以输出强高低电平,连接数字器件。
  • 开漏输出:只可以输出强低电平,高电平要靠外部电阻拉高。输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻,适合做电流型的驱动。

二、GPIO相关配置寄存器

2.1 分类

每组GPIO端口的寄存器包括:

  • 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)
  • 两个32位数据寄存器(GPIOx_IDR,GPIOx_ORD)
  • 一个32位置位/复位寄存器(GPIOx_BSRR)
  • 一个16位复位寄存器(GPIOx_BRR)
  • 一个32位锁定寄存器(GPIOx_LCKR)
    每个I/O端口可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)

2.2 端口配置低/高寄存器GPIOx_CRL,GPIOx_CRH

CRL/CRH每四个位控制一个IO口,CRL控制标号0~7的口,CRH控制8 ~15的口,其中包含CNFy和MODEy两类交替出现。
CNFy[1:0](y=0…7)
输入:

  1. 00:模拟输入
  2. 01:浮空输入模式(复位后状态)
  3. 10:上拉/下拉输入模式
  4. 11:保留

输出:

  1. 00:通用推挽输出模式
  2. 01:通用开漏输出模式
  3. 10:复用功能推挽输出模式
  4. 11:复用功能开漏输出模式

MODEy[1:0](y=0…7)
00:输入模式(复位后状态)
01:输出模式:最大速度10MHZ
10:输出模式:最大速度2MHZ
11:输出模式:最大速度50MHZ

2.3 端口输入/输出数据寄存器GPIOx_IDR, GPIOx_ORD

31:16:保留,始终为0
15:0:端口输入/输出数据

2.4 端口位设置/清除寄存器GPIOx_BSRR,端口位清除寄存器寄存器(GPIOx_BRR)

BSRR是控制ODR的寄存器,ODR与BSRR的区别:

  1. ODR设置位值时是影响其他的位,ODR使用时先读取其状态才能设置其值

  2. BSRR寄存器设置位值的时候,不会影响到其他的位的输出或输入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPIO相关知识点注解 的相关文章

随机推荐

  • python 使用上级目录的文件(相对路径,绝对路径)

    Python功能点实现 多方法访问上级目录中的文件 简书 1 相对路径 csv test b txt 2 绝对路径 from os path import dirname abspath dirname dirname abspath fi
  • php 随机生成指定金额范围内的随机数

    function random bag money total personal num min money money total 20 personal num 19 min money 1 money right money tota
  • CSS之设置图片宽度100%,高度等于宽度

    html代码如下 div class left div class img img src static img face 2 jpg div div stulus语法 img position relative width 100 hei
  • DDD-笔记

    先说下传统系统设计 大部分从数据库开始 自底向上的设计 这种设计会使系统的设计受到数据库的影响 会有比较大的局限性 比如说 数据库仅有数据 没有行为 而对现实世界的描述则会更加抽象 更加远离业务 开发团队通过与产品或客户的沟通 直接设计表模
  • Python 快速验证代理IP是否有效

    有时候 我们需要用到代理IP 比如在爬虫的时候 但是得到了IP之后 可能不知道怎么验证这些IP是不是有效的 这时候我们可以使用Python携带该IP来模拟访问某一个网站 如果多次未成功访问 则说明这个代理是无效的 代码如下 import r
  • mysql到hive调度工具_调度工具(ETL+任务流)

    1 区别ETL作业调度工具和任务流调度工具 kettle是一个ETL工具 ETL Extract Transform Load的缩写 即数据抽取 转换 装载的过程 kettle中文名称叫水壶 该项目的主程序员MATT 希望把各种数据放到一个
  • RMAN.DBMS_RCVCAT 版本错误处理

    oracle xml oms rman target sys oracle1 emdb catalog rman rman emdb Recovery Manager Release 10 2 0 5 0 Production on Wed
  • Java中的函数使用

    Java中函数是一段可重复使用的代码块 可接受输入参数并返回结果 函数的定义通常包括函数名 参数列表和返回类型 在Java中 函数也被看作是对象 具有属性和方法 本文将从多个方面详细阐述Java中函数的使用和注意事项 一 函数的定义和使用
  • Oracle---day01

    一 简单查询语句 1 去重查询 和mysql的一样 select distinct job from emp select distinct job deptno from emp 去除job相等且deptno相等的结果 2 查询员工年薪
  • Hanlp本地化安装

    环境说明 系统 centos7 x python版本 3 9 0 这里安装完整版本hanlp full 精简版会有不少问题出现 没有找到解决方案 官网安装地址 https hanlp hankcs com install html 2 x
  • HTML简介

    目录 话不多说 先上一个HELLO WORLD 什么是 HTML HTML 标签 HTML 文档 网页 例子解释 话不多说 先上一个HELLO WORLD h1 我的第一个标题 h1 p 我的第一个段落 p 什么是 HTML HTML 是用
  • octave 机器学习_使用Octave开发机器学习算法

    octave 机器学习 Octave is an open source high level programming language designed to perform efficient numerical computation
  • 深度学习大数据

    CAFFE深度学习交流群 532629018 国内数据 链接 http pan baidu com s 1i5nyjBn 密码 26bm 好玩的数据集 链接 http pan baidu com s 1bSDIEi 密码 25zr 微软数据
  • java调用自己写的类型_Java基础——自定义类的使用

    自定义类 我们可以把类分为两种 1 一种是java中已经定义好的类 如之前用过的Scanner类 Random类 这些我们直接拿过来用就可以了 2 另一种是需要我们自己去定义的类 我们可以在类中定义多个方法和属性来供我们实际的使用 什么是类
  • Android ViewGroup提高绘制性能

    如果下面有很多子View 绘制的时候 需要开启其子View的绘制缓存功能 从而提高绘制效率 public void setChildrenDrawingCacheEnabled boolean enabled final int count
  • 全国职业院校技能大赛云计算技术与应用大赛国赛题库答案(1)

    文章目录 IaaS 云计算基础架构平台 IaaS 云平台搭建 IaaS 云平台运维 IaaS 云计算基础架构平台 IaaS 云平台搭建 1 设置主机名 防火墙设置以及 SELinux 设置如下 1 设置控制节点主机名 controller
  • 产业AI公开课正式开播!60分钟解读AI对金融科技的全新破局

    京东数科 产业AI公开课 第一季第一期 重 磅 开 播 行业热门话题 实力业内大咖 深度解读 经典对话 绝对让你这1个小时的时间欲罢不能 干货满满 从SARS到这次新冠肺炎 黑天鹅 事件对资本市场造成极大影响 不同时期的应对之道有何不同 疫
  • 欧拉函数(数论)

    include
  • 团队的远程管理_远程团队指南:如何管理您的远程软件开发团队

    团队的远程管理 Guides to help you work remotely seem to have swept through the Internet these days 这些天来 帮助您远程工作的指南似乎席卷了Internet
  • GPIO相关知识点注解

    一 GPIO工作方式 1 1 GPIO输入 输入工作方式 输入路径 输入浮空模式 I O I O I O端口 gt