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.

[参考译文] TM4C123GH6PM:GPIOPinWrite 问题

Guru**** 2443830 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/627038/tm4c123gh6pm-gpiopinwrite-issue

器件型号:TM4C123GH6PM

我正在使用此函数 GPIOPinWrite()来打开和关闭 LED。 我的板上的 LED 位于端口 C 和引脚6上。 当我将其关闭时、我使用以下函数:

GPIOPinWrite (GPIO_LED_base、GPIO_GREEN _LED、0x00);

它可以正常工作、但我正在使用的另一个器件连接到端口 C 和引脚5。 使用上述功能后、器件不再工作。 我假设是因为我正在禁用整个端口、而不是单个引脚。 有人能帮我解决这个问题吗? 谢谢

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

    如果"GPIO_GREEN_LED"的"定义"不介入(任何) PC0-PC3、则您应该可以接受。
    这假设参数二(如所述)避开了 PC0-PC3中的(任何)引脚。 (为 JTAG 保留的那些)

    幸运的是、有一种(通常)电路板恢复方法。   您对旨在"调试端口解锁或恢复、类似"的论坛搜索框(本页顶部)的使用应会显示详细信息...

    这里的大多数使用"LM 闪存编程器"-实用程序选项卡-显示"Debug Port Unlock"。   (或 DID -在我们较旧版本的 LM 闪存编程器下-由于 J-Link 及其(改进的)不同方法的卓越性能、我们未使用此类编程器...)   

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

    Marco、还请检查您是否以某种方式解锁 PC0-3以用于 GPIO。 默认情况下。 这些是特殊引脚、并锁定以供 JTAG 使用。 用户需要解锁这些引脚以供 GPIO 使用。 当您说设备不再工作时、您是否意味着无法连接到设备? 您能否提供更多详细信息?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我相信,当 Marco 说“设备不再工作”时,他指的是“另一个设备... 连接到端口 C 的引脚5"、而不是 MCU。

    如果是这种情况、则:
    Marco、当你和上面一样编写这句话时、只有 GPIO_GREEN _LED 屏蔽的引脚被关闭- GPIOPinWrite 将"执行错误"的可能性是零的。

    GPIO_GREEN LED 的值是什么? 应为0x40。

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

    [引用 user="Marco Bongini">它可以正常工作、但我使用的另一个器件连接到端口 C 和引脚5。 使用上述函数后、器件不再工作。[/quot]

    朋友 Bruno -不能  通过0x20控制 PC5 -不是0x40?

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

    实际上、但我认为 GPIO_GREEN _LED 是 Marco 在第一个帖子中描述为"我的板的 LED 在端口 C 和引脚6上"的结果、那么这是0x40、不是吗? )
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    他的写作(有点)令人困惑-然而(正如我的引述所述)海报抱怨 PC5 (单独)得出:"该器件不再工作了!"   

    由于海报(过去)成功使用"PC6"(当然是0x40)、我相信(大多数)评审团成员会同意 PC5s 使用0x20...

    与往常一样-(这次)书面细节中的魔鬼-这些是"不清楚"的。

    (请向您的"同胞海报(PC2的海报影响 PC3的名声)、看看您是否"购买"了我最新的"远程诊断"。  (尝试为您节省更多时间/精力-这显然是用户-客户端错误)

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

    您好 CB1、

    目前 Marco 的措辞表明:

    • 指示灯位于 PC6上
    • PC5上有其它设备
    • 可通过 GPIOPinWrite (GPIO_LED_BASE、GPIO_GREEN_LED、0x00)打开/关闭 LED;
    • 声称问题是 GPIOPinWrite (GPIO_LED_base、GPIO_GREEN _LED、0x00);导致 PC5上的器件出现问题、也使其关闭。

    因此、主要问题是 GPIO_GREEN_LED 定义为什么。 完全同意 POST 请求的根本原因是 PC5上的器件无法正常工作、 我只是试图澄清、Bruno 的问题是验证报告的问题函数上使用的 GPIO_GREEN_LED 值、但尚未详细说明它的含义、实际上是0x40、除了0x40什么都没有、因此只有 PC6发生了更改 该代码行。 这是我们有希望的共识假设、但尚未得到验证!

    此外、我们目前甚至不知道该 PC5器件的设置是什么... 需要更多信息、我想我们都同意吗?

    希望 Marco 能很快向我们提供这些细节。

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

    [报价 USER="CB1_MOBIT"]是否不会  通过0x20控制 PC5 -不是0x40?[/QUERPLET]

    您的句子正确。 但海报需要控制 PC6。

    PC5是他不想控制的东西。

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

    [引用 user="Bruno Saraiva"] PC5是他不想控制的内容

    原谅-我不会从海报的文章中"得到"这一点。   (两个对一个-让我们再次看看证据中的"少数"事实。)

    海报上写道(这是"真实副本")"我正在使用的另一个器件连接到端口 C 和引脚5。"    

    现在-正如海报中的-相当故意-与 PC5建立了联系-"您如何认为 PC5是未读的或不受控制的?"

    我能不能承认我的“高兴”,因为“你们中的任何人”——至今还没有——通过我的 J-Link 要求我(强迫维修)“失序的控制器”——(而我的整个6-2,235磅的身体——在恐惧中摇晃!)

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

    是的、问题很好。 我有一个外部器件、其引脚连接到 PC5、PC6上有一个绿色 LED。 我使用以下命令打开 LED:
    (GPIO_LED_base、GPIO_GREEN _LED、GPIO_GREEN _LED);
    一切都正常、LED 和外部器件。

    使用以下命令关闭 LED 时出现问题:

    (GPIO_LED_BASE、GPIO_GREEN _LED、0x00);
    调用此函数后、我的外部设备停止为我提供数据。

    PC5和 PC6应该是不相关的、但这正是我得到的结果。 并回答另一个用户的问题:是的、PC6为0x40。

    很抱歉、我的第一篇帖子有点令人困惑。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请原谅、但一切都取决于该特定命令中使用的"GPIO_GREEN_LED"的值!    这仍然未知-是否已在您的程序中在其他地方进行了修改?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我同意 CB1刚才所说的100%。 请澄清这个 Marco。。。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    代码为:
    #define GPIO_GREEN LED GPIO_PIN_6

    在另一部分中:

    #define GPIO_PIN_6 0x00000040
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您清除 PIN6时、这应该对 PIN5没有影响。 您是否有观察 PIN5/PIN6的范围? 您能否确保电路板上的两个引脚之间没有短路或任何短路?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Charles Tsaa"]您能否确保电路板上的两个引脚之间没有短路或任何问题?

    您好、Charles、

    你的同胞“拉尔夫”和我——很早——可能也觉得“短”潜力——但(近距离)检查发现两个信号之间存在“延迟”—这证明不可能出现“直流短”。

    当输入(非常)高阻抗时(迹线彼此靠近并并联几英寸)、并且"激励信号具有(非常)快速的信号边缘时、Fi/I 已看到此类信号"重影"!

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

    Ciao Marco、

    您的问题肯定不在软件中(但我们仍假设与这些引脚的 GPIO 设置相关的所有操作都已正确完成)。

    它是否可以是一次性损坏的 MCU? 您还有其他电路板吗? 这是您自己的设计板还是评估套件之一?

    如果不查看硬件原理图和代码的其余部分、很难提出更多想法、但目前这里显示的器件是正确的。

    布鲁诺

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

    @Charles、

    我写的(昨天,21:28)不正确地说了一个在(另一个)张贴在这里的“信号重影”,而不是这个!    (我只是短暂地从「家」中「释放」,原因(明显)是「好理由」。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、
    让我们等待 Marco 使用示波器对这两个信号进行进一步调查。 在他的使用中、这两个引脚的频率并不高、这使得噪声耦合的可能性降低了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    我@的幽默可能(再次)变得不那么令人迷惑。   

    供应商的 Ralph -和 I -遇到(可能)不需要的信号耦合问题-但对于完全不同的帖子!   这是我的"螺旋式"(我的借口是那个小时)、在(仍然)移动了我们的外部仓库之后-昨晚。  (这是一个持续的过程-我们有许多精密的设备、实验室设备、子组件、电源组件等。)

    现在、就像早期一样、海报使用"0x00"来清除(希望只是这样) PC6 (或 PC5 -我还不清楚)可能证明太广泛-太残酷了?   我们知道 param 2 win "GPIO_PinWrite()"有效地限制了"写入设置的范围"-但它是否限制了写入复位(或清除?)   是否不采用"/0x40"(或类似)提供更安全(即更有限/更有针对性)的复位方法?

    ("家"指的是-但到目前为止-我"逃脱了...")   (并且切勿"回答门上的"敲门...")

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

    您好、Charles、

    我尝试更改电路板、同样的问题。

    我尝试对 PC5和 PC6使用示波器、它们未短接。

    它发生了非常怪异的事情。 如果 I 代码:

    GPIOPinWrite (GPIO_PORTC_BASE、GPIO_PIN_6、GPIO_PIN_6);
    GPIOPinWrite (GPIO_PORTC_BASE、GPIO_PIN_6、0x00);

    我的外部设备将停止工作。

    相反、如果我仅编写代码:(基本上不会在前面打开 LED)

    GPIOPinWrite (GPIO_PORTC_BASE、GPIO_PIN_6、0x00);

    外部设备正在工作。 这个外部器件在 PC5上有一个中断引脚。 他无法连接到 PC6。

    有趣的是、我的红色 LED 也会发生同样的情况、即 PC7上的情况。 如果我尝试打开和关闭它、外部器件将无法工作。  

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

    请原谅检查以下事项:

    • 外部器件(及其电路板)之间的接地连接已牢固地连接至(假设) LPAD (最近(实际上)已"输出欧姆电阻")
    • LPAD 和外部器件(或电路板)的电源足够。  (当 LED 电流变化时、不会下降/下降/尖峰。)

    如果您可以(暂时)切换到另一个 MCU 端口(一个具有寻址 LED)并运行相同的代码、这将非常有用。  (具有必要的端口寻址修改)   

    如果在这些"要点"和您的"新更改的端口遭受类似的损害"中找到"无故障"、则应提交原理图并说明此"神秘外部器件"的"ID"。

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