嵌入式Linux&Android开发-GPIO

本文详细介绍了Linux下的GPIO开发,包括传统的寄存器配置方法和使用pinctrl与gpio子系统的新方法。重点讲解了DTS在配置GPIO资源中的作用,以及如何通过设备树设置中断输入和复用功能。GPIO调试部分阐述了如何通过sysfs接口控制GPIO,以实现对GPIO的读写和方向设置。
摘要由CSDN通过智能技术生成

目录

一、前言

二、传统开发方法

三、新的开发方法

四、pinctrl子系统

五、gpio子系统

六、设置通用输出输入

DTS 文件增加驱动的资源描述

驱动实现中对 DTS 所添加的资源进行解析

七、设置中断输入

首先在 DTS 文件中增加驱动的资源描述:

驱动函数中对 DTS 所添加的资源进行解析

八、设置复用

九、GPIO调试

通过sysfs方式控制GPIO


为什么要了解GPIO?

因为无论是最简单的LED、KEY,还是外部接口相关的I2C SPI UART HDMI LVDS等等都需要用到GPIO。

GPIO, 全称 General-Purpose Input/Output(通用输入输出)

RK3399 有 5 组 GPIO bank:GPIO0~GPIO4。所有的 GPIO 在上电后的初始状态都是输入模式,可以通过软件设为上拉或下拉,也可以设置为中断脚。 每个 GPIO 口除了通用输入输出功能外,还可能有其它复用功能。

那我们知道什么是GPIO了,那如何去学习和应用GPIO呢?

一、前言

在学习51单片机时,要控制一个GPIO输出高、低电平,就得根据对应IO寄存器每一bit的作用非常了解,然后配置时钟、速率、方向、上下拉等等。51单片机是一款8位MCU,在配置寄存器相对容易,如果是32位甚至64位的处理器呢,会大大增加配置的复杂度。

后来ST推出了STM32,并迅速收获一大批开发者和市场占有份额,至今依然是岿然不动。原因之一就是ST推出了一个“BSP标准库”(当然后来有推出了HAL、LL库等),BSP库屏蔽了底层寄存,大大释放了开发者的工作量,让开发者眼前一亮——原来MCU也可以这样开发。确实,BSP层应该由原厂实现,驱动工程师只做驱动&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值