⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpio.h

📁 windows mobile 6.13 dnldr下载源码
💻 H
字号:
/*******************************************************************************
 * Copyright:   Copyright (c) 2007. Hisilicon Technologies, CO., LTD.
 * Version:     V300R001B01
 * Filename:    usp_base_gpio.h
 * Description: Defines the GPIO values for user.
 * History:
                1.Created by SunShaojie on 2007/08/31
*******************************************************************************/

#ifndef __GPIO_H
#define __GPIO_H

//#define TEST_GPIO

//------------------------------------------------------------------------------
// single GPIO define
//------------------------------------------------------------------------------
#define GPIO_0_0    0x0
#define GPIO_0_1    0x1
#define GPIO_0_2    0x2
#define GPIO_0_3    0x3
#define GPIO_0_4    0x4
#define GPIO_0_5    0x5
#define GPIO_0_6    0x6
#define GPIO_0_7    0x7

#define GPIO_1_0    0x10
#define GPIO_1_1    0x11
#define GPIO_1_2    0x12
#define GPIO_1_3    0x13
#define GPIO_1_4    0x14
#define GPIO_1_5    0x15
#define GPIO_1_6    0x16
#define GPIO_1_7    0x17

#define GPIO_2_0    0x20
#define GPIO_2_1    0x21
#define GPIO_2_2    0x22
#define GPIO_2_3    0x23
#define GPIO_2_4    0x24
#define GPIO_2_5    0x25
#define GPIO_2_6    0x26
#define GPIO_2_7    0x27

#define GPIO_3_0    0x30
#define GPIO_3_1    0x31
#define GPIO_3_2    0x32
#define GPIO_3_3    0x33
#define GPIO_3_4    0x34
#define GPIO_3_5    0x35
#define GPIO_3_6    0x36
#define GPIO_3_7    0x37

#define GPIO_4_0    0x40
#define GPIO_4_1    0x41
#define GPIO_4_2    0x42
#define GPIO_4_3    0x43
#define GPIO_4_4    0x44
#define GPIO_4_5    0x45
#define GPIO_4_6    0x46
#define GPIO_4_7    0x47

#define GPIO_5_0    0x50
#define GPIO_5_1    0x51
#define GPIO_5_2    0x52
#define GPIO_5_3    0x53
#define GPIO_5_4    0x54
#define GPIO_5_5    0x55
#define GPIO_5_6    0x56
#define GPIO_5_7    0x57

#define GPIO_6_0    0x60
#define GPIO_6_1    0x61
#define GPIO_6_2    0x62
#define GPIO_6_3    0x63
#define GPIO_6_4    0x64
#define GPIO_6_5    0x65
#define GPIO_6_6    0x66
#define GPIO_6_7    0x67

#define GPIO_7_0    0x70
#define GPIO_7_1    0x71
#define GPIO_7_2    0x72
#define GPIO_7_3    0x73
#define GPIO_7_4    0x74
#define GPIO_7_5    0x75
#define GPIO_7_6    0x76
#define GPIO_7_7    0x77

#define GPIO_8_0    0x80
#define GPIO_8_1    0x81
#define GPIO_8_2    0x82
#define GPIO_8_3    0x83
#define GPIO_8_4    0x84
#define GPIO_8_5    0x85
#define GPIO_8_6    0x86
#define GPIO_8_7    0x87

#define GPIO_9_0    0x90
#define GPIO_9_1    0x91
#define GPIO_9_2    0x92
#define GPIO_9_3    0x93
#define GPIO_9_4    0x94
#define GPIO_9_5    0x95
#define GPIO_9_6    0x96
#define GPIO_9_7    0x97

#define GPIO_10_0   0xA0
#define GPIO_10_1   0xA1
#define GPIO_10_2   0xA2
#define GPIO_10_3   0xA3
#define GPIO_10_4   0xA4
#define GPIO_10_5   0xA5
#define GPIO_10_6   0xA6
#define GPIO_10_7   0xA7

#define GPIO_11_0   0xB0
#define GPIO_11_1   0xB1
#define GPIO_11_2   0xB2
#define GPIO_11_3   0xB3
#define GPIO_11_4   0xB4
#define GPIO_11_5   0xB5
#define GPIO_11_6   0xB6
#define GPIO_11_7   0xB7

#define GPIO_12_0   0xC0
#define GPIO_12_1   0xC1
#define GPIO_12_2   0xC2
#define GPIO_12_3   0xC3
#define GPIO_12_4   0xC4
#define GPIO_12_5   0xC5
#define GPIO_12_6   0xC6
#define GPIO_12_7   0xC7

#define GPIO_13_0   0xD0
#define GPIO_13_1   0xD1
#define GPIO_13_2   0xD2
#define GPIO_13_3   0xD3
#define GPIO_13_4   0xD4
#define GPIO_13_5   0xD5
#define GPIO_13_6   0xD6
#define GPIO_13_7   0xD7


#define GPIO_1      GPIO_0_0
#define GPIO_2      GPIO_0_1
#define GPIO_3      GPIO_0_2
#define GPIO_4      GPIO_0_3
#define GPIO_5      GPIO_0_4
#define GPIO_6      GPIO_0_5
#define GPIO_7      GPIO_0_6
#define GPIO_8      GPIO_0_7

#define GPIO_9      GPIO_1_0
#define GPIO_10     GPIO_1_1
#define GPIO_11     GPIO_1_2
#define GPIO_12     GPIO_1_3
#define GPIO_13     GPIO_1_4
#define GPIO_14     GPIO_1_5
#define GPIO_15     GPIO_1_6
#define GPIO_16     GPIO_1_7

#define GPIO_17     GPIO_2_0
#define GPIO_18     GPIO_2_1
#define GPIO_19     GPIO_2_2
#define GPIO_20     GPIO_2_3
#define GPIO_21     GPIO_2_4
#define GPIO_22     GPIO_2_5
#define GPIO_23     GPIO_2_6
#define GPIO_24     GPIO_2_7

#define GPIO_25     GPIO_3_0
#define GPIO_26     GPIO_3_1
#define GPIO_27     GPIO_3_2
#define GPIO_28     GPIO_3_3
#define GPIO_29     GPIO_3_4
#define GPIO_30     GPIO_3_5
#define GPIO_31     GPIO_3_6
#define GPIO_32     GPIO_3_7

#define GPIO_33     GPIO_4_0
#define GPIO_34     GPIO_4_1
#define GPIO_35     GPIO_4_2
#define GPIO_36     GPIO_4_3
#define GPIO_37     GPIO_4_4
#define GPIO_38     GPIO_4_5
#define GPIO_39     GPIO_4_6
#define GPIO_40     GPIO_4_7

#define GPIO_41     GPIO_5_0
#define GPIO_42     GPIO_5_1
#define GPIO_43     GPIO_5_2
#define GPIO_44     GPIO_5_3
#define GPIO_45     GPIO_5_4
#define GPIO_46     GPIO_5_5
#define GPIO_47     GPIO_5_6
#define GPIO_48     GPIO_5_7

#define GPIO_49     GPIO_6_0
#define GPIO_50     GPIO_6_1
#define GPIO_51     GPIO_6_2
#define GPIO_52     GPIO_6_3
#define GPIO_53     GPIO_6_4
#define GPIO_54     GPIO_6_5
#define GPIO_55     GPIO_6_6
#define GPIO_56     GPIO_6_7

#define GPIO_57     GPIO_7_0
#define GPIO_58     GPIO_7_1
#define GPIO_59     GPIO_7_2
#define GPIO_60     GPIO_7_3
#define GPIO_61     GPIO_7_4
#define GPIO_62     GPIO_7_5
#define GPIO_63     GPIO_7_6
#define GPIO_64     GPIO_7_7

#define GPIO_65     GPIO_8_0
#define GPIO_66     GPIO_8_1
#define GPIO_67     GPIO_8_2
#define GPIO_68     GPIO_8_3
#define GPIO_69     GPIO_8_4
#define GPIO_70     GPIO_8_5
#define GPIO_71     GPIO_8_6
#define GPIO_72     GPIO_8_7

#define GPIO_73     GPIO_9_0
#define GPIO_74     GPIO_9_1
#define GPIO_75     GPIO_9_2
#define GPIO_76     GPIO_9_3
#define GPIO_77     GPIO_9_4
#define GPIO_78     GPIO_9_5
#define GPIO_79     GPIO_9_6
#define GPIO_80     GPIO_9_7

#define GPIO_81     GPIO_10_0
#define GPIO_82     GPIO_10_1
#define GPIO_83     GPIO_10_2
#define GPIO_84     GPIO_10_3
#define GPIO_85     GPIO_10_4
#define GPIO_86     GPIO_10_5
#define GPIO_87     GPIO_10_6
#define GPIO_88     GPIO_10_7

#define GPIO_89     GPIO_11_0
#define GPIO_90     GPIO_11_1
#define GPIO_91     GPIO_11_2
#define GPIO_92     GPIO_11_3
#define GPIO_93     GPIO_11_4
#define GPIO_94     GPIO_11_5
#define GPIO_95     GPIO_11_6
#define GPIO_96     GPIO_11_7

#define GPIO_97     GPIO_12_0
#define GPIO_98     GPIO_12_1
#define GPIO_99     GPIO_12_2
#define GPIO_100    GPIO_12_3
#define GPIO_101    GPIO_12_4
#define GPIO_102    GPIO_12_5
#define GPIO_103    GPIO_12_6
#define GPIO_104    GPIO_12_7

#define GPIO_105    GPIO_13_0
#define GPIO_106    GPIO_13_1
#define GPIO_107    GPIO_13_2
#define GPIO_108    GPIO_13_3
#define GPIO_109    GPIO_13_4
#define GPIO_110    GPIO_13_5
#define GPIO_111    GPIO_13_6
#define GPIO_112    GPIO_13_7

//define the max number of one GPIO group
#define GPIO_MAXIMUM    0x8

#define GPIO_ID_MASK    0x0f

// GPIO direction
typedef enum {
    EGPIO_DIR_INPUT = 0,
    EGPIO_DIR_OUTPUT = 1,
    EGPIO_DIR_NUM
}EGPIO_DIR;

// GPIO data
typedef enum {
    EGPIO_DATA_LOW = 0,
    EGPIO_DATA_HIGH = 1,
    EGPIO_DATA_NUM
}EGPIO_DATA;

// GPIO mode select
typedef enum {
    EGPIO_MODE_SOFT = 0,
    EGPIO_MODE_HARD = 1,
    EGPIO_MODE_NUM
}EGPIO_MODE;

// GPIO interrupt sense select
typedef enum {
    EGPIO_INT_EDGE = 0,
    EGPIO_INT_LEVEL = 1,
    EGPIO_INT_SENSE_NUM
}EGPIO_INT_SENSE;

// GPIO mode select
typedef enum {
    EGPIO_INT_SINGLE = 0,
    EGPIO_INT_DOUBLE = 1,
    EGPIO_INT_SELEDGE_NUM
}EGPIO_INT_SELEDGE;

// GPIO mode select
typedef enum {
    EGPIO_INT_DOWN_LOW = 0,
    EGPIO_INT_UP_HIGH = 1,
    EGPIO_INT_EVENT_NUM
}EGPIO_INT_EVENT;

// GPIO interrupt data struct
typedef struct {
    UINT8               gpioID;
    EGPIO_INT_SENSE     sense;          // interrupt sense: 0-edge, 1-level
    EGPIO_INT_SELEDGE   edge;           // interrupt sense: 0-single edge, 1-double edge
    EGPIO_INT_EVENT     event;          // interrupt event: 0-down edge(low level), 1-up edge(high level)
}USP_GPIO_INT_MODE, *PUSP_GPIO_INT_MODE;

#ifdef __cplusplus
extern "C" {
#endif
//-----------------------------------------------------------------------------
//
// Function:  GetGpioBaseAdrr
//
// This function get GPIO group address.
//
UINT32 GetGpioBaseAdrr (UINT8 ucId);

//-----------------------------------------------------------------------------
//
// Function:  GpioGetDirection
//
// This function get the direction of GPIO ID.
//
EGPIO_DIR GpioGetDirection(UINT8 gpioID);

//-----------------------------------------------------------------------------
//
// Function:  GpioSetDirection
//
// This function set the direction of GPIO ID.
//
BOOL GpioSetDirection(UINT8 gpioID, EGPIO_DIR dir);

//-----------------------------------------------------------------------------
//
// Function:  GpioSetValue
//
// This function set the value of GPIO ID.
//
BOOL GpioSetValue(UINT8 gpioID, EGPIO_DATA data);

//-----------------------------------------------------------------------------
//
// Function:  GpioGetValue
//
// This function get the value of GPIO ID.
//
EGPIO_DATA GpioGetValue(UINT8 gpioID);

//-----------------------------------------------------------------------------
//
// Function:  GpioInitialize
//
// This function set the value of GPIO ID. And set the direction of GPIO ID
//
BOOL GpioInitialize(UINT8 gpioID, EGPIO_DIR dir, EGPIO_DATA data);

//-----------------------------------------------------------------------------
//
// Function:  GpioSetIntrMode
//
// This function set the interrupt triggered mode of GPIO ID.
//
BOOL GpioSetIntrMode(const USP_GPIO_INT_MODE *intrMode);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -