文章目录

  • 1 普适的GPIO引脚操作方法
    • 1.1 GPIO模块一般结构
    • 1.2 GPIO相关寄存器
    • 1.3 GPIO寄存器的2种操作方法
    • 1.4 GPIO的其他功能:防抖动、中断、唤醒

1 普适的GPIO引脚操作方法

GPIO:General-purpose input/output,通用的输入输出口。

1.1 GPIO模块一般结构

有多组 GPIO,每组有多个 GPIO。

使能: 电源/时钟。

模式(Mode): 引脚可用于 GPIO 或其他功能。

方向: 引脚 Mode 设置为 GPIO 时,可以继续设置它是输出引脚,还是输入引脚。

数值: 对于输出引脚,可以设置寄存器让它输出高、低电平;对于输入引脚,可以读取寄存器得到引脚的当前电平。

1.2 GPIO相关寄存器

使能:

  • 芯片手册一般有相关章节,用来介绍:power/clock。
  • 可以设置对应寄存器使能某个 GPIO 模块(Module)。
  • 有些芯片的 GPIO 是没有使能开关的,即它总是使能的。

模式(Mode):

  • 一个引脚可以用于 GPIO、串口、USB 或其他功能。
  • 有对应的寄存器来选择引脚的功能。

方向:

  • 对于已经设置为 GPIO 功能的引脚,有方向寄存器用来设置它的方向:输出、输入。

数值:

  • 对于已经设置为 GPIO 功能的引脚,有数据寄存器用来写、读引脚电平状态。

1.3 GPIO寄存器的2种操作方法

原则:不能影响到其他位。

1. 直接读写:读出、修改对应位、写入。

//要设置 bit n:
val = data_reg;
val = val | (1<<n);
data_reg = val;//要清除 bit n:
val = data_reg;
val = val & ~(1<<n);
data_reg = val;

2. set-and-clear protocol:
set_reg, clr_reg, data_reg 三个寄存器对应的是同一个物理寄存器,要设置 bit n:set_reg = (1<<n);要清除 bit n:clr_reg = (1<<n)。

1.4 GPIO的其他功能:防抖动、中断、唤醒

后续介绍。


参考资料:

  1. 韦东山全系列视频第1季快速入门

普适的GPIO引脚操作方法相关推荐

  1. raspberry pi_使用Raspberry Pi和GPIO引脚控制外部LED

    raspberry pi by Shahbaz Ahmed Shahbaz艾哈迈德(Shahbaz Ahmed) 使用Raspberry Pi和GPIO引脚控制外部LED (Controlling a ...

  2. zynq文档学习之向GPIO引脚写数据

    作为实验GPIO连接MIO控制LED的前置知识,摘自ug585的14.3章 首先看14.3.1启动顺序,第一步复位(上电自动复位)和第二步时钟(时钟信号由板子提供,晶振倍频)都不用考虑,重点学习第三步 ...

  3. 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  4. 树莓派:GPIO/引脚/Pin 介绍

    注:本文翻译自respberry官方介绍文档 GPIO和40针头 Raspberry Pi的一个强大功能是沿着板的顶部边缘有一排GPIO(通用输入/输出)引脚.所有当前的Raspberry Pi板上都 ...

  5. rk3568 | 瑞芯微平台GPIO引脚驱动编写

    最近在玩瑞芯微平台的产品,移植了几个设备的驱动,遇到了一些问题,总结后发现大部分问题都出在了GPIO配置的问题上,写下本篇文章,用来分享一下调试的心得. 有喜欢瑞芯微的朋友,可以加我好友,拉你进群,一 ...

  6. ESP8266 板子引脚与GPIO引脚对应关系-管脚定义

    Esp8266 开发板的管脚图与 GPIO 对应关系 date: 2020-06-15 lastmod: 2020-06-22 模拟引脚 : ~D1 ~D2 ~D3 ~D4 ~D5 ~D6 ~D7 模 ...

  7. gpio stm8 管脚 配置工具_stm8的GPIO引脚模式

    GPIO_Mode_In_FL_No_IT 浮空输入无中断 GPIO_Mode_In_PU_No_IT 上拉输入无中断 GPIO_Mode_In_FL_IT 浮空输入有中断 GPIO_Mode_In_ ...

  8. 20220321在MT6739的android8.1下调试GPIO引脚

    20220321在MT6739的android8.1下调试GPIO引脚 2022/3/21 18:40 1.完整编译MT6739的android8.1的SDK: rootroot@rootroot-d ...

  9. 晶晨A311D平台GPIO引脚配置使能

    驱动层: 晶晨A311D芯片分别拥有若干个GPIO组,每个GPIO PAD 有6个相关寄存器: GPIO_O_REG:用于控制pad的输出 GPIO_I_REG:用于存储pad的输入值 GPIO_OE ...

最新文章

  1. 05 | 数组:为什么很多编程语言中数组都从0开始编号?
  2. java 执行顺序混乱_java类执行顺序问题
  3. VC2010常见问题的解决方案
  4. PPT中导出高分辨率图片的方法
  5. FileUpload1 在部分浏览器中实现多选
  6. js制作简易班级抽签程序
  7. npstion实现通过手机扫描二维码向电脑录入信息
  8. 条形码类型及常见条形码
  9. Linux下deamon(服务)的实现
  10. 电脑录制视频的方法很简单 轻松录制完美视频
  11. switch-case案例*
  12. 10 Kafka集群与运维
  13. SAP_BTE增强有两种,类似于校验和替代
  14. xp系统禁用wmi服务器,xp中哪些服务是可以关闭的
  15. 印象笔记桌面版怎么导出html,三个小工具帮你搞定印象笔记模版
  16. 妙味课堂 Html5实战打怪游戏开发教程
  17. 长芯微LCM1110 模数 (A/D) 转换器 P2P替代TI德州仪器ADS1110
  18. Geek Talk 037:我们说知识图谱时候,我们在想什么
  19. 计算机软件水平考试评副高,计算机软考高级职称还需要评吗
  20. 实时天气降水、气温、风力图作为Windows动态壁纸

热门文章

  1. mfc 实现 设备 热插拔功能
  2. SPI配置8通道ADC128S022
  3. 彻底理解DFT定义(第三章离散傅里叶变换(3.1)学习笔记)
  4. 基于DVB-T标准,COFDM调制系统的利用导频信号进行符号粗同步
  5. php 简单路由实现
  6. 卷积神经网络(CNN)小结
  7. 来聊一聊Cookie(小甜饼),及其涉及到的web安全吧
  8. Thrift Java Servers Compared
  9. 【Machine Learning in Action --3】决策树ID3算法
  10. iOS利用通知(NSNotification)进行传值