[Linux驱动]GPIO的操作

一、前言

在开发中经常会涉及到GPIO的操作,虽然说大部分驱动代码都是厂家提供,但在适配时需要增加控制,或者控制逻辑出现了偏差,都是需要涉及gpio的操作。

二、示例代码操作

//static声明一个全局变量
static int gpio_sim = 0;
//通过名称从dts解析gpio属性并返回gpio编号。参1是指向gpio的设备结点 参2是dts的属性名称
gpio_sim = of_get_named_gpio_flags(pdev->dev.of_node, "gpio-sim", 0, NULL);
//申请gpio,获取gpio的访问权
gpio_request(gpio_sim, "gpio-sim");
//将gpio设为输出,参1是gpio号,参2是默认输出高电平
gpio_direction_output(gpio_sim, 1);
//将gpio设为输入
gpio_direction_input(gpio_sim);
//将gpio设为低电平
gpio_set_value(gpio_sim, 0);
//将gpio设为高电平
gpio_set_value(gpio_sim, 1);

三、adb或者串口操作GPIO

在开发中需要验证gpio的拉高拉低是否正常,但是总不能编译后再操作吧,所以采用快速操作gpio的方法。打开adb或者串口,进入sys/class/gpio目录

//添加gpio37接口,添加后该目录会有gpio37目录
echo 37 > export
//打开gpio37
cd gpio37
//将引脚配置为输入
echo "in" > direction
//将引脚配置为输出
echo "out" > direction
//设为高电平
echo 1 > value
//设为低电平
echo 0 > value

四、查看gpio

 操作完gpio后可以敲cat d/gpio来查看gpio状态,例如:

gpio-166 (                    |horn-gpio           ) out hi

 可以知道这个gpio为高,或者用万用表结合pcb来验证。

五、总结

这是基础中的基础,做这个笔记就是要让自己牢记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值