TI中文支持网
TI专业的中文技术问题搜集分享网站

cc3200外部中断

大家好,我的情况如下

1.板子是cc3200 launchpad

2.代码的目标功能是通过板子的D4引脚(D4引脚已经和一个传感器连接),触发外部中断,并在中断函数中输出字符串"Hello"

3.现在遇到的问题是无法触发外部中断

(备注: 上述传感器在Arduino上做过实验,正常工作,已证实不是传感器问题)

下面是我参考SDK相关例程写出的cc3200外部中断代码,还望TI员工和各位伙伴指点是哪里出了问题,感激不尽。

void pin_mux_config(){

    // 使能GPIOA1时钟
    PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK);
    PRCMPeripheralReset(PRCM_GPIOA1);
    // 设置引脚4为GPIO模式, 标准模式, 2ma
    PinModeSet(PIN_04, PIN_MODE_0);
    PinConfigSet(PIN_04, PIN_STRENGTH_2MA, PIN_TYPE_STD);
    // 设置成输入, 引脚4对应GPIOA1的pin5
    GPIODirModeSet(GPIOA1_BASE, GPIO_PIN_5, GPIO_DIR_MODE_IN);
    // 设置成上升沿触发中断
    GPIOIntTypeSet(GPIOA1_BASE, GPIO_PIN_5, GPIO_RISING_EDGE);
    // 设置中断处理函数
    GPIOIntRegister(GPIOA1_BASE, interrupt_func);
    // 使能中断
    GPIOIntEnable(GPIOA1_BASE, GPIO_INT_PIN_5);
}

void setup() {
    Serial.begin(9600);
    pin_mux_config();
}

void loop() {
    Serial.println(" Loop…");
    delay(1000);
}

void interrupt_func() {

    Serial.println("Hello");

}

Terry Han:

能否确认当按键电平发生变化时,CC3200是否进入了

void interrupt_func() 

{

    Serial.println("Hello");     可以在这里打个断点,通过仿真模式下进行验证

}

这个函数? 能否排除是串口信息输出是否有问题?

// // Set Interrupt Type for GPIO // MAP_GPIOIntTypeSet(GPIOA1_BASE,GPIO_PIN_5,GPIO_FALLING_EDGE); //对应PIN_04物理引脚 MAP_GPIOIntTypeSet(GPIOA2_BASE,GPIO_PIN_6,GPIO_FALLING_EDGE); //对应PIN_15物理引脚 // // Store Interrupt handlers // 回调函数入口首地址 g_pAudioInControlHdl = pAudioInControl; //MICStartStopControl g_pAudioOutControlHdl = pAudioOutControl; //SpeakerStartStopControl // // Register Interrupt handler // 在操作系统中注册中断 lRetVal = osi_InterruptRegister(INT_GPIOA1,(P_OSI_INTR_ENTRY)MICButtonHandler,INT_PRIORITY_LVL_1); //<1>按键后发生MICButtonHandler()中断 ASSERT_ON_ERROR(lRetVal);

lRetVal = osi_InterruptRegister(INT_GPIOA2,(P_OSI_INTR_ENTRY)SpeakerButtonHandler,INT_PRIORITY_LVL_1); //<2>按键后发生SpeakerButtonHandler()中断 ASSERT_ON_ERROR(lRetVal); // // Enable Interrupt // 使能GPIO中断,当按键中断发生后会进入相应的MICButtonHandler()或SpeakerButtonHandler() // 在该中断入口函数中会调用回调函数g_pAudioInControlHdl或g_pAudioOutControlHdl–>MICStartStopControl或者SpeakerStartStopControl写入消息队列中 MAP_GPIOIntClear(GPIOA1_BASE,GPIO_PIN_5); MAP_GPIOIntEnable(GPIOA1_BASE,GPIO_INT_PIN_5); MAP_GPIOIntClear(GPIOA2_BASE,GPIO_PIN_6); MAP_GPIOIntEnable(GPIOA2_BASE,GPIO_INT_PIN_6);

sdasd sadasd:

回复 Terry Han:

十分感谢Terry Han的热心帮助。因为我用的是energia来开发的,请问在energia下可以怎么做?

Terry Han:

回复 sdasd sadasd:

建议可以到https://e2e.ti.com/论坛看看energia的相关问题讨论

赞(0)
未经允许不得转载:TI中文支持网 » cc3200外部中断
分享到: 更多 (0)