Linux中gpio接口的使用方法示例
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,前言Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,
千家信息网最后更新 2025年12月02日Linux中gpio接口的使用方法示例
前言
Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用的
使用gpio
使用gpio接口需要包含#include ,在驱动中使用延时函数mdelay,需要包含#include 文件,Documentation/gpio.txt文件有作详细说明。
判断一个IO是否合法:
int gpio_is_valid(int number);
设置GPIO的方向,如果是输出同时设置电平:
/* set as input or output, returning 0 or negative errno */int gpio_direction_input(unsigned gpio);int gpio_direction_output(unsigned gpio, int value);
获取输入引脚的电平:
/* GPIO INPUT: return zero or nonzero */int gpio_get_value(unsigned gpio);/* GPIO OUTPUT */void gpio_set_value(unsigned gpio, int value);int gpio_cansleep(unsigned gpio);/* GPIO INPUT: return zero or nonzero, might sleep */int gpio_get_value_cansleep(unsigned gpio);/* GPIO OUTPUT, might sleep */void gpio_set_value_cansleep(unsigned gpio, int value);
获取一个GPIO并声明标签:
/* request GPIO, returning 0 or negative errno.* non-null labels may be useful for diagnostics.*/int gpio_request(unsigned gpio, const char *label);/* release previously-claimed GPIO */void gpio_free(unsigned gpio);
将GPIO映射为IRQ中断:
/* map GPIO numbers to IRQ numbers */int gpio_to_irq(unsigned gpio);/* map IRQ numbers to GPIO numbers (avoid using this) */int irq_to_gpio(unsigned irq);
设置GPIO的IRQ中断类型:
if (!sw->both_edges) { if (gpio_get_value(sw->gpio)) { set_irq_type(gpio_to_irq(sw->gpio), IRQ_TYPE_EDGE_FALLING); } else { set_irq_type(gpio_to_irq(sw->gpio), IRQ_TYPE_EDGE_RISING); }}参考文章
Linux中的gpio口使用方法
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
接口
内容
文件
电平
程序
参考
学习
驱动
使用方法
方法
合法
之间
价值
体系
内核
函数
前言
同时
就是
常用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全行政助理招聘
访问网站数据库
松江区网络技术服务收费
mdf 数据库恢复
关于网络安全应急处置的表述
剑网三服务器没有响应
ESP是不是网络安全协议
海北州网络技术费用
评网络技术铺助工程师总结
浙江二手ktv服务器
网站服务器安全防护措施
松下网络技术有限公司招聘
软件开发中ot是什么意思
数据库技术与应用教程蒋丽影
hive远程数据库安装
服务器领地移动
泾县进口软件开发服务价钱
文思联合网络技术有限公司
兰州诚信软件开发
鲲鹏服务器大数据
软件开发功能点如何计算
nodemcu连接自建服务器
嘉定区现代化网络技术设计
单位网络安全宣传日活动总结
网络安全艺术字手写体
无线网网络安全密钥怎么找
网络技术招聘人员要求
宝塔服务器搭建仿真
网络安全等级保护四级以上
服务器保存文件位置