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.

[参考译文] RTOS/TM4C1294NCPDT:在 GPIO 引脚 PP3上创建/启用中断

Guru**** 2456300 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/642781/rtos-tm4c1294ncpdt-create-enable-interrupt-on-gpio-pin-pp3

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

您好!

我正在使用 EK_TM4C1294XL 开发板、并希望在引脚 PP3 (端口 P、引脚3)上创建中断处理程序。 为此、我调整 了 EK_TM4C1294XL.c 和 EK_TM4C1294XL.h 文件、并为.c 文件添加了使用以下代码的引脚:

GPIO_PinConfig gpioPinConfigs[]={
/*输入引脚*/
/* EK_TM4C1294XL_USR_SW1 */
GPIOTIVA_PJ_0 | GPIO_CFG_IN_PD | GPIO_CFG_IN_INT_INT_RISING、
/* EK_TM4C1294XL_USR_SW2 */
GPIOTIVA_PJ_1 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_RISING、
/* EK_TM4C1294XL_PP3 */
GPIOTIVA_PP_3 | GPIO_CFG_IN_PD | GPIO_CFG_IN_INT_RISING、

/*输出引脚*/
/* EK_TM4C1294XL_USR_D1 */
GPIOTIVA_PN_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
/* EK_TM4C1294XL_USR_D2 */
GPIOTIVA_PN_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
}; 

对于.h 文件:

typedef 枚举 EK_TM4C1294XL_GPIOName{
EK_TM4C1294XL_USR_SW1 = 0、
EK_TM4C1294XL_USR_SW2、
EK_TM4C1294XL_PP3、
EK_TM4C1294XL_D1、
EK_TM4C1294XL_D2、

EK_TM4C1294XL_GPIOCOUNT
}EK_TM4C1294XL_GPIOName; 

我使用以下代码将中断附加到主文件中:

int main (void)
{
/*呼叫板初始化函数*/
Board_initGeneral();
Board_initGPIO();
Board_initEMAC();

system_printf ("启动 TCP 回显示例\n 系统提供程序设置为"
"SysMin。 停止目标以查看中的任何 SysMin 内容"
" ROV.\n");
/* SysMin 仅在您调用 flush 或 exit 时才会打印到控制台*/
system_flush();

setUpPool();
GPIO_WRITE (Board_LED0、Board_LED_ON);
GPIO_setCallback (EK_TM4C1294XL_PP3、gpioButtonFxn0);
GPIO_enableInt (EK_TM4C1294XL_PP3);

/*启动 BIOS */
BIOS_start();

返回(0);
} 

但是、当我将引脚 PP3连接到3.3V 以获取上升沿时、我会收到一个错误、并退出。  

有人可以帮帮我吗?

谢谢、

Jonas。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Jonas、
    您在哪里或如何注册 PP3中断源? PP3中断处理程序代码在哪里? 是否为 PP3输入添加了去抖代码?

    更好的是、为什么不尝试从 Tivaware 示例轮询板载用户按钮、然后将示例代码切换为使用 PP3中断处理程序?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 BP101:

    处理程序代码是 GPIO_setCallback 函数中的 gpioButtonFxn0函数。 当我将 EK_TM4C1294XL_PP3替换为 EK_TM4C1294XL_USR_SW1时、代码正常工作。 但是、我希望能够使用不同的引脚来实现中断、然后只使用两个用户按钮。

    Jonas