GPIO基础知识

gpio作为一种通用的IO接口,使用方法主要如下:
Gpio:每个 GPIO 都代表一个连接到特定引脚或球栅阵列(BGA)封装中“球珠”的一个位
标准头文件  <linux/gpio.h> [对外接口]
其中根据是否定义CONFIG_GENERIC_GPIO判断系统是否支持gpio
头文件为 <asm/gpio.h>;实现文件为 <driver/gpio/gpiolib.c>

步骤
1. gpio_request(gpio_num, "xx gpio");  申请GPIO, 返回0为申请成功,否则失败。
2. 设置gpio方向:
int gpio_direction_input(unsigned gpio);                      //设置为输入
int gpio_direction_output(unsigned gpio, int value);          //设置为输出,并初始化值为value.
3. 获取/设置gpio值:    int gpio_cansleep(unsigned gpio);
a.不可睡眠:
gpio_get_value(unsigned gpio);                              //返回value
gpio_set_value(unsigned gpio, int value);                    //设置值
b.可睡眠:(对于有些挂载在I2C,SPI总线上的扩展GPIO,读写操作可能会导致睡眠,因此不能在中断函数中使用。使用下面的函数以区别于正常的GPIO)
int gpio_get_value_cansleep(unsigned gpio);                  //输入端口:返回零或非零,可能睡眠
void gpio_set_value_cansleep(unsigned gpio, int value);       //输出端口:可能睡眠
4. void gpio_free(unsigned gpio);                             //释放GPIO
5. int gpio_is_valid(int number);                             //检测此gpio口是否有效
批量初始化方法
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值