This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP432P401R:MAP_GPIO中断边缘选择错误?

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/629867/msp432p401r-map_gpio_interruptedgeselect-bug

部件号:MSP432P401R

您好,

我注意到,当我得到GPIO引脚中断(在我的情况下为WFP 3.5)并调用 MAP_GPIO中断边缘选择以更改边缘时, 它会再次为该引脚设置中断标志,并再次调用中断例程。 我可以看到,在改变边线时,销钉没有变化。 这是应该发生的,我怀疑这是一个错误吗? 所以检查一下:D

此致,

Ugljesa Popovic。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ugljesa

    让我来研究一下。 您是否有一个我可以用来验证的代码示例?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Evan,

    这是IRQ处理程序... 我不得不删除这个处理程序的某些部分,但我确信它与WFP 3.5 无关,它只是将一些全局变量设置为正确的状态。

    void PORT3_IRQHandler (void)
    {
    UINT32_t状态;
    
    状态= MAP_GPIO _getEnabledInterruptStatus(GPIO_PORT_P3);
    //MAP_GPIO清除InterruptFlag (GPIO端口P3,状态);
    P3->IFG &=~状态;					//我使用此选项是因为在DriverLib文档中,它可能会导致您无法对Port3使用clearInterruptFlag函数... 虽然它起了作用,但只是为了确定。
    
    IF (STATUS&GPI_PIN5){
    		IF (getConnectionStatus())){//			如果WFP 3.5 为LOW
    			MAP_GPIO_REBENTEdgeSelect(GPIO_PORT_PIN5, GPIO_PIN5, GPI_LLOW TO_HIGH Transition),则此函数返回TRUE;
    			//GPIO ->IFG &=~ P3_PIN5;//I	已修复此问题... 	
    		
    			
    			~{ MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P3, GPIO _PIN5, GPIO _HIGH _TO_LLOW Transition);//P3->IFG &= GPIO PIN5;	//同样的事情	
    		}
    	}
    
    MAP_Interrupt_DisableSleepOnIsrExit();
    }
    



    此致,

    Ugljesa。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    TRM的10.2 .7.1 部分说:

    为每个相应的I/O写入PxIES可能会导致设置相应的中断标志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你,Clemens。

    此致。