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_CFG_OUT_OD_PU

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/710058/rtos-tm4c1294ncpdt-gpio_cfg_out_od_pu

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

大家好、

数组 GPIO_PinConfig gpioPinConfigs[]中的 GPIO 配置条目是否可能 包含:

GPIOTIVA_PD_1 | GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_HIGH、

不设置上拉电阻器? 没有发现关于错误的提示。
事实上,RTOS 驱动程序 GPIO_init()在我的应用程序中不起作用。 当我更改 GPIO_PUR 寄存器并启用上拉电阻时、它开始工作、端口变为高电平。

我希望有一些专家可以查看并告诉我。

此致 Klaus-Michael

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

    您使用的是 TIRTOS 的哪个版本?

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

    尊敬的犹大:

    感谢您的回复。 我使用的是2.16.0.08。 这不是一个紧急问题。 唉、我无法调试 RTOS 驱动程序本身。 我拥有的源代码与固件真正的功能有很大不同

    目前、我的解决方案如下所示:

    GPIO_PinConfig gpioPinConfigs[]={
       GPIOTIVA_PD_1 | GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_HIGH
    };
    /*
     * ==== BASISK3A_initGPIO ===
     *
    void BASISK3A_initGPIO (void)

       /*初始化外设和引脚*/
       GPIO_init();
       HWREG (GPIO_PORTD_BASE + GPIO_OPUR)= 2;  //针对上拉电阻进行处理未设置


    此致大家- Klaus-Michael

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

    有一些混淆。 犹大有几天出去。 他将在星期一作出答复。

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

    您在哪个文件中看到 TIRTOS 版本中的以下内容?

    GPIO_PinConfig gpioPinConfigs[]={
    GPIOTIVA_PD_1 | GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_HIGH
    };

    在我的安装中看不到这一点。

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

    早上好,犹大
    我想、今天早上、无论您在哪里阅读这篇文章...

    真诚地说、我不理解您的问题。 此 GPIO_PinConfig 结构对于随 RTOS 分发的所有示例代码是通用的。 例如、它位于我拥有的评估板的 EK_TM4C1294XL.c 文件中。 GPIO_CFG_OUT_OD_PU 本身可在 GPIO.h 中的 ti/tirtos_tivac_2_16_00_08/products/tidrivers_tivac_2_16_00_08/packages/ti/drivers 中找到

    代码片段本身不在我的定制板的固件中。 如果 Pin PD1在台式机的主板中不可用、那么只需另选一个即可。 我感兴趣的是、为什么没有启用上拉电阻。 我不想责怪任何人犯错。 我只想避免、另一个依赖于上拉电阻器、就像我所做的那样。 这个小细节导致我的实验室充满了大量烟雾。

    此致、并感谢 Klaus-Michael 的回答   

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

    Klaus、

    我误解了你的意见。  我认为您暗示 TIRTOS 本身具有以下代码集:

    GPIO_PinConfig gpioPinConfigs[]={
    GPIOTIVA_PD_1 | GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_HIGH
    };

    我更深入地研究了这个问题、我发现它是驱动程序不支持的已知限制
     Tiva 器件上的 GPIO_CFG_OUT_OD_PU 和 GPIO_CFG_OUT_OD_PD。

    如果您看一下 GPIOTiva.c、它会有以下注释:

    /* GPIO 输出类型表*/
    静态常量 uint8_t gpioCfgOutputTypes []={
    GPIO_PIN_TYPE_STD、/* GPIO_CFG_OUT_STD */
    GPIO_PIN_TYPE_OD、/* GPIO_CFG_OUT_OD_NOPULL *
    GPIO_PIN_TYPE_OD、/* TivaWare 不支持 GPIO_CFG_OUT_OD_PU *
    GPIO_PIN_TYPE_OD /* TivaWare 不支持 GPIO_CFG_OUT_OD_PD *
    };

    犹大

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

    犹大把问题联系回 TivaWare 的解释是准确的。 请查看器件数据表中的表10-4、该表指示 PUR 和 PDR 位无关的开漏。 该器件不应支持使用开漏进行设置的功能、也不应具有上拉或下拉功能。 当 TM4C 器件使用漏极开路设置时、如果您需要该功能、则需要使用外部上拉/下拉电阻器。

    也来自 DS:"对端口中的每个焊盘进行编程、使其具有上拉、下拉或漏极开路"-注意"OR"、表示没有上拉或下拉组合可用于开漏设置。

    因此、考虑到这一点、即使您似乎在一定程度上成功实现了上拉功能、该器件也不会实际具有上拉功能。 因此、您可能会因此遇到未定义的行为。 我在 E2E 上搜索过该主题、多年来我们一直提供的共识反馈是使用具有漏极开路设置的外部上拉电阻器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢大家、这是芯片的另一个秘密。 当直接在寄存器中置位时、上拉电阻似乎正常工作、即使不受支持也是如此。  此致 Klaus-Michael