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.

[参考译文] LAUNCHXL2-570LC43:gioNotification()、位= 0x00000000

Guru**** 2555070 points
Other Parts Discussed in Thread: LAUNCHXL2-570LC43, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1537737/launchxl2-570lc43-gionotification-bit-0x00000000

部件号:LAUNCHXL2-570LC43
主题中讨论的其他器件: HALCOGEN

工具/软件:

你好。

抱歉我不熟悉微控制器。

我尝试在 LAUNCHXL2-570LC43 开发板上的 gioPORTB 引脚 0 上启用中断。 我预计我正在与之连接的 LoRa 模块发生中断。 这是我的 gioNotification () 代码:

// DIO0 中断回调
void gioNotification(gioPORT_t *端口、Uint32 位){


   printf(“Interrupt Triggered:\n“);
   printf(“端口地址:0x%08X\n“、(unsigned int) port);
   printf(“位掩码:0x%08X\n“,位);

   如果 (PORT ==DIO0_PORT && BIT ==(1U <<DIO0_PIN)){//检查您是否在正确的端口和引脚上收到中断
   txDone = true;
   printf(“接收的中断:TxDone\n“);
   }


   gioREG->FLG =(1U<<DIO0_PIN);

}

这是控制台输出:

有一个打印输出表明 MCU 正在识别输入、我也在示波器上观察到了该输入。  
什么可能导致位掩码为 0x00000000? 我认为我应该预计它是 0x00000001、但我有点不确定位掩码如何全为 0。 这表明了什么?

这是我的 HALCoGen 设置:




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

    尊敬的 Chan:

    这不是位号的位掩码值。 我是说它提供了直接的位数。 例如、如果您启用 PA0 中断、您的位号将仅变为 0、类似地、对于 PA2、位号将变为 2。

    例如、您可以在此处验证以下代码、我启用了 4 个 GIO 中断 PB2、PA0、PA6 和 PA7。 大家可以看到如何能够在处理程序代码中区分它们。

    另请注意、如果我们同时使用 PB2 和 PA2、那么两者的位值将相同(即 2)、在这些情况下、我们可以使用端口地址区分它们、如上图所示。

    --

    此致、
    Jagadish。