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.

[参考译文] TM4C123BH6PM:TM4C123BH6PM

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/634433/tm4c123bh6pm-tm4c123bh6pm

器件型号:TM4C123BH6PM

你(们)好

我正在使用 tm4c123bhpm、它会在某个点进入休眠模式  

portc pin5用作 UART TX  

由于某种原因、该引脚(端口引脚5)将变为3状态  

所有其他 GPIO 输出都保持最后状态、只有该位更改为3状态

在进入休眠模式之前、我尝试将此引脚更改为 GPIO 输出、但没有任何帮助

谢谢

Zahiz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否处于 VDD3ON 模式以保持 IO 状态? 如果您处于 VDD3ON 模式、则所有驱动为高电平的输出都应保持驱动状态。 进入休眠模式之前、PC5的状态是什么?在休眠模式下、您测量的电压是多少? 您能否断开 PC5引脚与 UART 器件的连接并确认其在休眠模式下浮动?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    该引脚配置为 uart1的 TX
    在配置过程中,我使用 UARTFlowControlSet (UART1_BASE,0X00004000|0X00008000);
    如果我删除此命令、则引脚保持工作、并且引脚在休眠期间保持在高电平位置。
    使用此流控制命令时、引脚在休眠期间处于3态如何在休眠之前撤消此流控制

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

    TX 和 CTS 共用同一个引脚。  在流控制模式下、CTS 是 MCU 的输入。 MCU 是 DTE 还是 DCE?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    在进入休眠模式之前、是否可以将该引脚更改为 GPIO 输出
    我尝试使用
    GPIOPinTypeGpioOutput
    然后
    GPIOPadConfigSet

    GPIOPinWrite
    但它没有帮助
    它保持输入状态

    谢谢
    Zahiz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我想、当您处于流量控制模式时、它会覆盖为处于输入模式。 但是、与配置为输入模式的其他引脚不同、这些引脚将在休眠模式之前和休眠模式期间保持输入模式。 您如何使用 UART1? 您是否需要流量控制?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    感谢您的提示重播
    它始终工作正常、这一事实表明、在休眠期间、我不需要输入它 或三态
    是否可以在进入休眠模式之前退出此流量控制、然后退出到 renter 流量控制
    如果是、我应该使用什么命令来停止流控制

    谢谢
    Zahiz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在进入休眠模式之前、是否可以尝试 UARTFlowControlSet (UART1_BASE、UART_FlowControl_NONE)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    很抱歉它没有帮助
    我尝试使用 UART_FlowControl_NONE (0x00000000)更改模式
    没有任何影响
    当我在休眠模式中删除缺陷控制命令时、它会保留端口状态(在我的情况下为 TX "1")
    如果我使用流控制命令、即使在处于休眠状态的 FlowControl_NONE 下也是3态或输入

    谢谢
    Zahiz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更改 UART_FlowControl_NONE、然后按照先前所做的那样设置为输出的引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我尝试过它
    这在休眠端口 C PIN6处于3状态时不起作用

    ----------------------------------------------------
    GPIOPinConfigure (GPIO_PC4_U1RX);
    GPIOPinConfigure (GPIO_PC5_U1TX);
    GPIOPinConfigure (HCI_PIN_CONFIG_UART_RTS);
    GPIOPinConfigure (HCI_PIN_CONFIG_UART_CTS);

    GPIOPinTypeUART (HCI_UART_GPIO_base、HCI_UART_PIN_RX | HCI_UART_PIN_TX);
    GPIOPinTypeUART (HCI_UART_RTS_GPIO_base、HCI_UART_PIN_RTS);
    GPIOPinTypeUART (HCI_UART_CTS_GPIO_base、HCI_UART_PIN_CTS);
    int i=0;
    while (i<1000000)

    i++;


    UARTFlowControlSet (UART1_BASE、0x00000000);

    I=0;
    while (i<1000000)

    i++;

    ROM_GPIOPinTypeGPIOOutput (GPIO_PORTC_BASE、GPIO_PIN_5);
    ROM_GPIOPinWrite (GPIO_PORTC_BASE、GPIO_PIN_5、GPIO_PIN_5);
    testHibernate ();
    ------------------------------------------------------

    该版本与休眠端口引脚6中不带 UARTFlowControlSet 的版本相同、为"1"
    ------------------------------------------------------------------
    GPIOPinConfigure (GPIO_PC4_U1RX);
    GPIOPinConfigure (GPIO_PC5_U1TX);
    GPIOPinConfigure (HCI_PIN_CONFIG_UART_RTS);
    GPIOPinConfigure (HCI_PIN_CONFIG_UART_CTS);

    GPIOPinTypeUART (HCI_UART_GPIO_base、HCI_UART_PIN_RX | HCI_UART_PIN_TX);
    GPIOPinTypeUART (HCI_UART_RTS_GPIO_base、HCI_UART_PIN_RTS);
    GPIOPinTypeUART (HCI_UART_CTS_GPIO_base、HCI_UART_PIN_CTS);
    int i=0;
    while (i<1000000)

    i++;


    // UARTFlowControlSet (UART1_BASE、0x00000000);

    I=0;
    while (i<1000000)

    i++;


    ROM_GPIOPinTypeGPIOOutput (GPIO_PORTC_BASE、GPIO_PIN_5);
    ROM_GPIOPinWrite (GPIO_PORTC_BASE、GPIO_PIN_5、GPIO_PIN_5);
    testHibernate ();
    --------------------------------------------------------------------
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我甚至尝试使用更改 UART 流控制
    HWREG (0X4000D030)= 0x0;

    HWREG (0X4000D030)=0X300;
    在所有情况下、端口5引脚都处于3状态
    仅当我删除这些命令时、端口才为"1"

    Zahiz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    在将引脚更改为输出引脚之前、您可以在下面尝试一下吗?
    1.是否可以调用 UARTFlowControlGet ()来查看流控是否真正被禁用?
    2.是否可以通过调用 UARTDisable()来禁用 UART?
    3.您可以尝试 SysCtlPeripheralDisable (SYSCTL_Periph_UART1)吗?