zoukankan      html  css  js  c++  java
  • 在4418平台上如何配置GPIO口的状态

    硬件
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    通过原理图找你需要配置的硬件IO口的管脚
     4418 6818 内核中,所有 GPIO 引脚被分为 ABCDE 等几组,每组 32 个。
    每组引脚起始地址定义如下图:

    硬件引脚都对应分配在这几组引脚中:
    例如:
    GPIOB29 对应 PAD_GPIO_B + 29
    硬件上的命名: GPIOB29
    软件上的命名: PAD_GPIO_B + 29
    GPIOC10 对应 PAD_GPIO_C + 10
    硬件上的命名: GPIOC10
    软件上的命名: PAD_GPIO_C + 10  
     
    软件
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    GPIO配置文件
    u-bootoarts5p4418droneincludeCfg_gpio.h
    kernelarcharmplat-s5p4418droneincludeCfg_gpio.h
     
    u-boot与kernel中
    例如:
    #define PAD_GPIOAO    (PAD_MODE_OUT | PAD_FUNC_ALT0 | PAD_LEVEL_HIGH | PAD_PULL_OFF | PAD_STRENGTH_0)           
    第一个参数:输出,输入              (输入为:PAD_MODE_IN, 输出为:PAD_MODE_OUT)
    第二个参数:功能选择
            ——————————————————————————————————————         
            | 注:                                                                                                                                  |
            |  // 0: GPIO          1: VIP1_VD[4]           ,2: MPEGTSI_TDATA1[0]   ,3:_                    =        |
            |  这里的GPIO对应的是0,那么第二个参数就是 PAD_FUNC_ALT0                                       |
            |----------------------------------------------------------------------------------------------|
            |    // 0: MCUS_SD[15]   ,1: GPIO       ,2: MPEGTSI0_TDATA[7]   ,3: UART5_TXD       =      |
            |  若GPIO对应的是1,那么第二个参数就是PAD_FUNC_ALT1                                               |
            ——————————————————————————————————————
    第三个参数:高低电平            (高电平:PAD_LEVEL_HIGH,低电平AD_LEVEL_LOW)               
    第四个参数:上拉,下拉,关闭上下拉   (上拉:PAD_PULL_UP, 下拉:PAD_PULL_DN,  关闭上下拉:PAD_PULL_OFF)
    第五个参数:驱动能力
     
    注:
    最好不要在cfg_gpio.h文件中配置GPIO,因为有些GPIO会有复用功能,可能会影响其他的功能,最好用GPIO有关的函数来实现
     
    GPIO有关的函数
    GPIO 输出功能设置
    如果要对 GPIO 配置为输出功能,输出高或输出低,就是拉高拉低的意思。
    我们可以用 int gpio_direction_output(unsigned gpio, int value)
    从函数的参数来看
    unsigned gpio:这个单个 GPIO 的值 ;
    int value:这个是要设置的值( 0 代表低电平, 1 代表高电平)
    比如我要对 LCD 供电的 GPIO 拉高,那么软件上这样写
    gpio_direction_output(PAD_GPIO_C + 10, 1);
    如果要拉低:
    gpio_direction_output(PAD_GPIO_C + 10, 0);
    我们在 LCD 驱动、触摸屏驱动、按键驱动等都有对 GPIO 设置,请参考源码对应的修改进行理解。
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    GPIO 输入功能设置
    如果我们想了解一个外部的电平的高低情况,那么我们可以通过 GPIO 连接该路电平,接着把 GPIO 设成输入功能即可。
    软件上用一个函数即可让 GPIO 变成输入功能
    int gpio_direction_input(unsigned gpio)
    从这上面我们只看到一个参数,就是对应 GPIO 的值
    比如我要让 GPIOC10 改成输入功能
    gpio_direction_input( PAD_GPIO_C + 10);
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    GPIO 电平读取
    当我们需要读取当前 GPIO 的值(输出、输入、复用功能都可以读取),我们也可以通过函
    数去读取
    static inline int gpio_get_value(unsigned gpio)
    参数 GPIO 代表需要读取 GPIO 对应的值
    比如我要读 GPIOC10 的值
    gpio_get_value(PAD_GPIO_C + 10)  
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    GPIO 中断功能设置
    当我们需要引脚中断功能的时候,那么我们就需要实现 GPIO 的中断功能。
    参数:
    void nxp_soc_gpio_set_int_enable(unsigned int io, int on)
    unsigned io :代表单个 GPIO 引脚
    int on:置为 1,则代表使能中断功能,置为 0,则说明不使能中断功能,即不作为中断引脚。  
  • 相关阅读:
    View传参数到Controller(asp.net mvc3) 中庸
    ExtJS实战(3)spring
    spring AOP(2)
    ExtJS实战(1)准备工作和界面赏析
    ExtJS+DWR+Spring+Hibernate开发HRMS(5)
    ExtJS实战(2)hibernate
    ExtJS实战系列前言
    Hibernate QBC高级查询
    ExtJS+DWR+Spring+Hibernate开发HRMS(4)
    ExtJS+DWR+Spring+Hibernate开发HRMS(3)
  • 原文地址:https://www.cnblogs.com/muhuacat/p/7045138.html
Copyright © 2011-2022 走看看