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.

[参考译文] TM4C1231H6PGE:为什么 DK-TM4C123G 启动器焊盘上的 PD7的运行方式与 PD6不同?

Guru**** 2468610 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/674753/tm4c1231h6pge-why-does-pd7-behave-differently-from-pd6-on-dk-tm4c123g-launcher-pad

器件型号:TM4C1231H6PGE
主题中讨论的其他器件:DK-TM4C123G

大家好、我看到 DK-TM4C123G 启动器焊盘上的 PD6和 PD7有不同的行为、希望有人能够说明原因。 我正在运行附加到这个帖子的代码、这实际上是一个闪烁的示例项目、但没有进行一些微小的修改。当我使用 PD6作为 GPIO 引脚时、我可以看到、当代码运行时、它的输出在高电平和低电平之间切换、 但是、当我将 GPIO 引脚更改为 PD7时、其输出始终保持低电平、原因是什么?

代码如下:

#include
#include
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"

#define TEST_GPIO_PORT GPIO_PORTD_BASE
#define TEST_GPIO_PIN GPIO_PIN_7
#define SYSCTL_PERIPH_PORT SYSCTL_PERIPH_GPIOD

//
//
//! \addtogroup example_list
//!

Blinky (闪烁)


//!
//! 一个使板载 LED 闪烁的非常简单的示例。
//
//

//
//
//闪烁板载 LED。
//
//
内部
main (空)

volatile uint32_t ui32Loop;

//
//启用用于板载 LED 的 GPIO 端口。
//
SysCtlPeripheralEnable (SYSCTL_Periph_port);

//
//检查是否启用了外设访问。
//
while (!SysCtlPeripheralReady (SYSCTL_Periph_port))

//
//为 LED 启用 GPIO 引脚(PG2)。 将方向设置为输出、然后
//启用 GPIO 引脚以实现数字功能。
//
GPIOPinTypeGPIOOutput (TEST_GPIO_PORT、TEST_GPIO_PIN);

//
//永久循环。
//
while (1)

//
//打开 LED。
//
GPIOPinWrite (TEST_GPIO_PORT、TEST_GPIO_PIN、TEST_GPIO_PIN);

//
//延迟一位。
//
for (ui32Loop = 0;ui32Loop < 200000;ui32Loop +)

//
//关闭 LED。
//
GPIOPinWrite (TEST_GPIO_PORT、TEST_GPIO_PIN、0);

//
//延迟一位。
//
for (ui32Loop = 0;ui32Loop < 200000;ui32Loop +)



谢谢!

Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更正了拼写错误:"...未进行少量修改的闪烁示例工程"应为"...经过少量修改的闪烁示例工程"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您似乎还没有注意到 PD7 "默认"为"NMI 输入"模式。   (执行此操作的两个引脚之一)

    要 "拯救/删除"PD7 (最常见的情况)不想要的命运-您必须先"解锁它"。   论坛搜索框-在此页面顶部-详细介绍了"如何解锁"过程。

    解锁后-您的常规"GPIO 作为输出"方法将(磁力)恢复 PD7以进行订购...

    如果您(或其他人)想知道- PD7的"有害犯罪的合作伙伴是 PF0"、这需要类似的"解锁"。

    对于年龄而言-我自己/他人建议"提高对这种情况的警觉性"- 在供应商文档和其他地方(这里?)  -证明是有用/值得的。   (我们的建议是(尚未)"移动供应商的针头...")

    请问,是否“公平”——如果知道 “新用户——客户” 不可避免地高速接近“S 曲线”山峰——而且(经常)——从 他们(临时)的山峰中跌落,那么建立“不充分的警卫铁路”是否有用?

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

    感谢快速响应 CB1! 从随附的代码中可以看到、我以相同的方式配置 PD6和 PD7、只需将 TEST_GPIO_PIN 宏更改为 GPIO_PIN_7或 GPIO_PIN_6进行测试。 我已经考虑过引脚 PD7的默认配置可能不是 GPIO、但是 TM4C123G 的数据表清楚地说明默认情况下它是 GPIO 引脚、请参阅第599页的表9-8。

    此致、

    Richard

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

    您好 Richard、

    但是 CB1在解锁注释方面的情况大多正确。

    请参阅数据表中有关 PD[7]旁边"A"的以下注释:

    • a:该管脚默认配置为 GPIO、但已锁定、只能通过解锁 GPIOLOCK 寄存器中的管脚并通过设置 GPIOCR 寄存器取消置位来重新编程。


    这是您的问题所在、因此您确实需要执行此帖子中概述的步骤: https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/374640

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、您答对了"解锁后-正常的"GPIO 作为输出"方法将(磁力)将 PD7恢复为订单..."、我在调用 GPIOPinTypeGPIOOutput ()之前解锁了 PD7、现在 PD7作为 PD6工作!

    感谢你们的帮助!

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你拉尔夫! 是的、CB1建议的工作方式、我在上一篇帖子中回答了。

    感谢大家的快速响应和有用提示、我觉得 TI 社区非常有用、尤其是对于像我这样的初学者。

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

    Richard、

    我们注意到、您已"两次"将您的帖子标记为"已解决您的问题"。   然而-这是不正确的-是不是吗?  

    不是 最初提到并建议 PD7的"独特要求"(要解锁)的帖子、而是"最好地解决您的问题"的帖子?   这篇文章更值得 “绿色闪屏”。   

    2个帖子(已授予) "这已解决"-实际上 "只确认" (早期)提供的解决方案成功-快速响应帮助者。"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CB1、您的原始帖子解决了我的问题、很抱歉我不知道"这解决了我的问题"按钮的工作原理、也没有引起太多关注、是的、后面的帖子只是证实了解决方案的成功。

    谢谢
    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Richard、甚至是这个论坛(严重失败)充分/正确地为用户-客户提供建议。

    不是恰当地解释论坛议定书----即侧重于"生产性努力"----而是投入时间、资金和能源"禁止"----即使是在"类似"的情况下----为提供(重复)服务的人提供了激励性的"肯定"----以帮助他人。

    您现在应该走得好-再次感谢您-公司/我希望您继续成长和成功...