什么是GPIO控制器

GPIO(General Purpose Input/Output)控制器
控制和管理GPIO引脚的硬件或软件组件。在嵌入式系统和单板计算机(如Raspberry Pi、BeagleBone等)中,
GPIO引脚用于简单的输入和输出操作,例如读取按钮状态、控制LED、与传感器通信等

GPIO引脚:GPIO引脚可以配置为输入或输出模式。在输入模式下,它可以读取外部信号的状态(如按钮按下或释放)。
在输出模式下,它可以向外部设备发送信号(如点亮LED)。
GPIO控制器:它是一个硬件模块,负责管理多个GPIO引脚的配置和状态。
GPIO控制器通过寄存器来控制每个引脚的方向(输入/输出)、状态(高/低电平)和其他功能(如中断)。
GPIO控制器可以理解为对引脚的控制器,通过获取引脚、在引脚输出来控制其他硬件
配置引脚方向:将引脚设置为输入或输出。
读取引脚状态:获取输入引脚的当前电平(高或低)。
设置引脚状态:将输出引脚设置为高电平或低电平。

在用户空间有echo和cat操作来控制GPIO:
1.echo 18 > /sys/class/gpio/export //导出一个GPIO引脚(假设引脚编号为18),选中
2.echo out > /sys/class/gpio/gpio18/direction //设置为输出
3.echo in > /sys/class/gpio/gpio18/direction //设置为输入
4.echo 1 > /sys/class/gpio/gpio18/value //设置为高电平
5.echo 0 > /sys/class/gpio/gpio18/value //设置为低电平
6.cat /sys/class/gpio/gpio18/value //读取当前电平
7.echo 18 > /sys/class/gpio/unexport //取消导出引脚,取消选中在内核空间用GPIO子系统来控制引脚:(platform平台)

#include <linux/module.h>
#include <linux/gpio.h>
#include <linux/of.h>
#include <linux/platform_device.h>

#define GPIO_PIN 18  // 假设使用引脚18

static int gpio_demo_probe(struct platform_device *pdev)
{
    int ret;

    // 请求GPIO引脚
    ret = gpio_request(GPIO_PIN, "demo_gpio");
    if (ret) {
        dev_err(&pdev->dev, "Failed to request GPIO %d\n", GPIO_PIN);
        return ret;
    }

    // 设置GPIO方向为输出,并初始化为低电平
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值