1、核心驱动为:
(1).c 文件
typedef struct
{
uint8_t InputReg[GPIO_PORT_NUM];
uint8_t OutputReg[GPIO_PORT_NUM];
uint8_t ConfigReg[GPIO_PORT_NUM];
uint8_t IntReg[GPIO_PORT_NUM];
}AW95_REG_T;
typedef struct
{
uint8_t IcId;
uint8_t IrqFlag;
uint8_t Input[GPIO_PORT_NUM];
uint8_t Output[GPIO_PORT_NUM];
uint8_t Config[GPIO_PORT_NUM];
uint8_t Int[GPIO_PORT_NUM];
}AW95_IC_T;
const AW95_REG_T Aw95Reg = {
{P0_INPUT,P1_INPUT},{P0_OUTPUT,P1_OUTPUT},\
{P0_CONFIG,P1_CONFIG},{P0INT_MSK,P1INT_MSK}};
AW95_IC_T Aw95Ic1 =
{
.IcId = 0xB0,
};
AW95_IC_T Aw95Ic2 =
{
.IcId = 0xB4,
};
AW95_IC_T *Aw95IcBuf[GPIO_IC_NUM] = {&Aw95Ic1,&Aw95Ic2};
void EXIO_Init(void)
{
uint8_t gpio_mode = 0x10;
bsp_InitI2C(); /*模拟iic初始化*/
GpioConfig(); /*外部中断初始化*/
I2C_CheckOk(Aw95Ic1.IcId);
I2C_CheckOk(Aw95Ic2.IcId);