微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 的GPIO2和GPIO4同时当作中断使用的问题

CC3200 的GPIO2和GPIO4同时当作中断使用的问题

时间:10-02 整理:3721RD 点击:

TI工程师:

你们好。3200里面,我同时设置了GPIO2和GPIO4为按键的中断触发源,但是发现使用了GPIO4的话,GPIO2就不能触发,它俩处于同一个GPIOx_BASE中,是需要特殊设置什么吗。两者设置代码分别是,GPIO2的为 
PinModeSet(PIN_57,PIN_MODE_0);
PinConfigSet(PIN_57,PIN_STRENGTH_2MA,PIN_TYPE_STD);
GPIODirModeSet(GPIOA0_BASE,GPIO_PIN_2,GPIO_DIR_MODE_IN);
GPIOIntTypeSet(GPIOA0_BASE,GPIO_PIN_2,GPIO_RISING_EDGE);
GPIOIntRegister(GPIOA0_BASE,EpPushButtonInterruptHandler3);
GPIOIntEnable(GPIOA0_BASE,GPIO_INT_PIN_2);
void EpPushButtonInterruptHandler3()
{
 UART_PRINT("Button 3 Pressed!:\n\r");
 eButton3_IF_EnableInterrupt();
}
eButton3_IF_EnableInterrupt()
{
        //Enable GPIO Interrupt
        MAP_GPIOIntClear(GPIOA0_BASE,GPIO_PIN_2);
        MAP_IntPendClear(INT_GPIOA0);
        MAP_IntEnable(INT_GPIOA0);
        MAP_GPIOIntEnable(GPIOA0_BASE,GPIO_PIN_2);
}
和GPIO4的为
PinModeSet(PIN_59,PIN_MODE_0);
PinConfigSet(PIN_59,PIN_STRENGTH_2MA,PIN_TYPE_STD);
GPIODirModeSet(GPIOA0_BASE,GPIO_PIN_4,GPIO_DIR_MODE_IN);
GPIOIntTypeSet(GPIOA0_BASE,GPIO_PIN_4,GPIO_RISING_EDGE);
GPIOIntRegister(GPIOA0_BASE,EpPushButtonInterruptHandler4);
GPIOIntEnable(GPIOA0_BASE,GPIO_INT_PIN_4);
void EpPushButtonInterruptHandler4()
{
 //GPIOSosIntHandler();
 UART_PRINT("Button 4 Pressed!:\n\r");
 //GPIOIntClear(GPIOA0_BASE,GPIO_PIN_4);
 eButton4_IF_EnableInterrupt();
}
eButton4_IF_EnableInterrupt()
{
 //Enable GPIO Interrupt
         MAP_GPIOIntClear(GPIOA0_BASE,GPIO_PIN_4);
         MAP_IntPendClear(INT_GPIOA0);
         MAP_IntEnable(INT_GPIOA0);
         MAP_GPIOIntEnable(GPIOA0_BASE,GPIO_PIN_4);
},还需要其它设置吗,谢谢。

已经解决

能否分享一下是什么问题,怎么解决的吗?多谢!

GPIO2和GPIO4同属于一个GPIOx-BASE,所以只需要在中断中注册一次,如果注册两次的话,3200会只识别最后一次注册的中断,而忽略前一次的,当中断发生时候,通过读取IO脚的状态来判断究竟是哪一个引脚引起的中断就可以了

GPIO2和GPIO4同属于一个GPIOx-BASE,所以只需要在中断中注册一次,如果注册两次的话,3200会只识别最后一次注册的中断,而忽略前一次的,当中断发生时候,通过读取IO脚的状态来判断究竟是哪一个引脚引起的中断就可以了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top