1.还没有按键,就进入中断。 2,如果按键,则进入中断好几次。 3.不进入I2c中断 硬件情况如下:ZLG7290,匹配电容12p,晶振 2M(立式无源) 端口情况如下 #define KEY_SCL GPIO_PIN_2 //pb2 #define KEY_SDA GPIO_PIN_3 //pb3 #define KEY_RST GPIO_PIN_4 //pF4 键盘复位 安全起见,通过IO口复位 #define KEY_INT GPIO_PIN_3 //pF3 键盘中断,连接到port f 的pin3 设置速率为10000 软件设置如下 // 使能所使用的外设 SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); // 配置相关引脚,以进行I2C 操作 GPIOPinTypeI2C(GPIO_PORTB_BASE, KEY_SCL | KEY_SDA); /* 配置KEY_RST管脚为上拉,2MA输出*/ GPIODirModeSet(GPIO_PORTF_BASE, KEY_RST , GPIO_DIR_MODE_OUT); GPIOPadConfigSet(GPIO_PORTF_BASE, KEY_RST ,GPIO_STRENGTH_4MA,GPIO_PIN_TYPE_STD); /* 设置KEY_INT为2MA,上拉输入 */ GPIOPadConfigSet(GPIO_PORTF_BASE, KEY_INT, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); GPIODirModeSet(GPIO_PORTF_BASE, KEY_INT, GPIO_DIR_MODE_IN); //RESET zlg7290Reset(); //使能中断引脚 GPIOIntTypeSet(GPIO_PORTF_BASE, KEY_INT, GPIO_FALLING_EDGE);/*设置KEY_INT中断的触发方式为下降沿触发*/ GPIOPinIntEnable(GPIO_PORTF_BASE, KEY_INT); /* KEY_INT */ IntEnable(INT_GPIOF); /* 使能GPIO Pf 口中断 */ //配置I2c为主机,低速输入 I2CMasterSetClk(spd); // 使能处理器中断 IntMasterEnable(); // 使能I2C 中断 IntEnable(INT_I2C0); // 使能I2C 主机中断 I2CMasterIntEnable(I2C0_MASTER_BASE); // 设置I2C 中断的优先级 IntPrioritySet(INT_I2C0, (pri << 5)); //设置key的优先级 IntPrioritySet(GPIO_PORTF_BASE, ((pri + 1)<< 5)); 这样有什么问题么? 我实在看不出来啊 |