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.

[参考译文] TM4C1290NCPDT:GPIOPinWrite 不按预期工作

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/828854/tm4c1290ncpdt-gpiopinwrite-not-working-as-expected

器件型号:TM4C1290NCPDT
我正在尝试为应用设置调试引脚。 示波器不会触发脉冲打开
引脚写入。 下面粘贴的代码是否有任何问题?
谢谢、
Priya
空 Debug_GPIO_Initialize (bool debugGpioInitialize)
   //将引脚设置为输出
   if (debugGpioInitialize == true)
   {
       ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOL);
       ROM_GPIOPinTypeGPIOOutput (HW_DEBUG_GPIO_PORT_BASE、HW_DEBUG_GPIO_PIN);
       GPIOPadConfigSet (HW_DEBUG_GPIO_PORT_base、HW_DEBUG_GPIO_PIN、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);
       ROM_GPIOPinWrite (HW_DEBUG_GPIO_PORT_BASE、HW_DEBUG_GPIO_PIN、0);
   }

 ROM_GPIOPinWrite (HW_DEBUG_GPIO_PORT_base、HW_DEBUG_GPIO_PIN、HW_DEBUG_GPIO_PIN);
     打印头 Delay1us (10);
     ROM_GPIOPinWrite (HW_DEBUG_GPIO_PORT_BASE、HW_DEBUG_GPIO_PIN、0);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Priya、

    您能否发布 HW_DEBUG_GPIO_PORT_BASE 和 HW_DEBUG_GPIO_PIN 的定义?

    此外、如果您调试代码并暂停代码、您是否会在任何时候进入 FaultISR? 如果是、您可能需要使用

    while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOL))

    调用 ROM_GPIOPinTypeGPIOOutput 之前

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

    //PN
    #define HW_DEBUG_GPIO_PORT_base      GPIO_PORTL_BASE
    #define HW_DEBUG_GPIO_PIN                   GPIO_PIN_3         //PL3
    //PN

    添加 while 语句没有任何变化。

    欣赏指针。

    谢谢、

    Priya

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

    您好、Priya、

    此时我唯一能想到的是  您的打印头 Delay1us (10);功能导致了问题。

    我获取了您的代码并在 LaunchPad 上运行了代码、但替换  了 Printhee_Delay1us (10);使用 SysCtlDelay、因为我无法访问 Printhee_Delay1us 函数、它在没有任何修改的情况下切换了 GPIO。

    还要确保将示波器正确连接到 PL3、并使用正确的触发电平进行设置。

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

    我输入 SysCtlDelay (g_ui32SysClock/200000);

    只有当 GPIOPadSet 被设定为 WPU 时、才出现模糊触发。

    是否有一个焊盘设置和外部上拉电阻的组合能够更好地触发?

    谢谢、

    Priya

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

    您好、Priya、

    这是一个非常小的延迟、如果您使用以下类似的器件、您会看到什么:

    SysCtlDelay (g_ui32SysClock/20000);

    尽管 SysClock 以120 MHz 运行并使用 SysCtlDelay 设置、但在使用以下命令时、我仍然能够使用逻辑状态分析器观察15 μ s 内的高电平:

    GPIOPadConfigSet (GPIO_PORTL_base、GPIO_PIN_3、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);

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

    是的、延迟已更改。 要查看脉冲、具有8mA 强度的弱上拉电阻似乎有所帮助。 这样、脉冲就略小于1伏。 您是否看到良好的3.3V 脉冲?

    谢谢、

    Priya

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

    您好、Priya、

    请参阅随附的 SysCtlDelay 示波器截图 (g_ui32SysClock/200000);