微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > 请教C3200 GPIO按键进不了中断问题

请教C3200 GPIO按键进不了中断问题

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

请教下,为什么GPIO中断进不了?只要按下C3200-LAUNCHXL上的SW3按键,程序就停止运行。

代码如下:

void PinMuxConfig(void)
{
//
// Enable Peripheral Clocks
//
      MAP_PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK);
      MAP_PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK);
//
// Configure PIN_55 for UART0 UART0_TX
//
      MAP_PinTypeUART(PIN_55, PIN_MODE_3);

//
// Configure PIN_57 for UART0 UART0_RX
//
      MAP_PinTypeUART(PIN_57, PIN_MODE_3);

//
// Configure PIN_04 for GPIO Input
//
      MAP_PinTypeGPIO(PIN_04, PIN_MODE_0, false);
      MAP_GPIODirModeSet(GPIOA1_BASE, 0x20, GPIO_DIR_MODE_IN);
}

void GpioIntHandle(void){
      unsigned long ulPinState = GPIOIntStatus(GPIOA1_BASE,1);
      GPIOIntClear(GPIOA1_BASE,GPIO_PIN_5);
      if(ulPinState & GPIO_PIN_3)
      {
            Message("Interrupt on pin 3\n\r");
       }
       else if(ulPinState & GPIO_PIN_4)
       {
             Message("Interrupt on pin 4\n\r");
        }
       else if(ulPinState & GPIO_PIN_5) {
            Message("Interrupt on pin 5\n\r");
      }
}


static void InterruptInt(void){

      GPIOIntTypeSet(GPIOA1_BASE,GPIO_PIN_5,GPIO_HIGH_LEVEL);
      GPIOIntRegister(GPIOA1_BASE, GpioIntHandle);
//
// Enable Interrupt
//
      GPIOIntClear(GPIOA1_BASE,GPIO_PIN_5);
      IntPendClear(INT_GPIOA1);
      IntEnable(INT_GPIOA1);
      GPIOIntEnable(GPIOA1_BASE,GPIO_INT_PIN_5);

}

void main(void) {

       BoardInit();

      PinMuxConfig();
      Message("InterruptInt\r\n");
      InterruptInt();

      InitTerm();
//
// Clearing the Terminal.
//
      ClearTerm();

      Message("\r\nLoop start \r\n");

      while(1) {
            UtilsDelay(26666666);
            Report("hello world\r\n");
      }

}

我把这段程序放到了uart_demo中去运行,可正常进入中断。

可能是配置出了问题,求指教。

1.这个程序和uart_demo中Main函数初始化有什么不同,确认一下PinMUX对引脚的配置是否正确和uart_demo中的引脚配置是否一致。

2.void GpioIntHandle(void)打个断点,看看按键后会不会进入回调函数内部去?

断点进不去。

按下按键后,主循环停止,不再打印“hello world”。

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

网站地图

Top