设为首页 加入收藏

TOP

Linux 内核层和 用户层 配置 GPIO 引脚(二)
2017-11-13 14:55:47 】 浏览:469
Tags:Linux 内核 用户 配置 GPIO 引脚
latform_device->dev, gpio_id,GPIOF_OUT_INIT_LOW, name);


设置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);


设置输出: 
    void gpio_set_value(unsigned gpio, int value);


释放申请的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中断类型:


    set_irq_type(gpio_to_irq( gpio), IRQ_TYPE_EDGE_FALLING);


需要确认  内核  menuconfig  中 Device Drivers -》  GPIO Support  设 y .


在 /sys/class/gpio  目录下如下所示 : 


gpiochip 后面的数字 是每个bank 的基地址  也就是  GP0 对应 gpiochip468


那么  GP0_07 的 ID 就是  468 + 7 ;(可能不同的内核版本,或者 开发板不一样 )通过 :


会对应生成 gpio475 目录 


通过 


来控制输出输入  ,电平高低 。 


最后,关于 Pinctrl 的内容还有太多要写,就先写到这把。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇String、StringBuilder和StringBu.. 下一篇OpenCV 图像细化

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目