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