大家好、
我设计了自己的 TM4C123GH6PM 定制板。 我在设计 PCB 时漏掉了 PD7是锁定引脚的一点 。 现在、我想在定制板上使用 UART2。
所有其他 UART 工作正常。 非常好的建议!
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 定制板。 我在设计 PCB 时漏掉了 PD7是锁定引脚的一点 。 现在、我想在定制板上使用 UART2。
所有其他 UART 工作正常。 非常好的建议!
您好、Sumit、
请参阅我们论坛常见问题解答 中的第1期:https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/374640
您好、Sumit、
我觉得初始化没问题、如果您将正确的 ISR 添加到了 startup_ccs.c 的 UART2部分、那么我不会立即提出根本原因的建议。
请参阅我们的故障诊断应用手册、尝试找出故障的根本原因: http://www.ti.com/lit/an/spma043/spma043.pdf
如果您在确定故障后遇到问题、请告诉我您已从应用手册中采取了哪些步骤以及结果如何、然后我可以尝试进一步指导您。
所示代码并不能证明、
"SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);"-包含在"UART2_init"中
在"HWREG (GPIO_PORTD_BASE_GPIO_O_O_LO_LOCK)= GPIO_LOCK_KEY;"-这将导致对"Fault ISR"的访问之前执行。
通过"单步执行"您的代码-您应该能够识别"进入故障 ISR"的"确切位置"。 您的报告将极大地帮助远程诊断...
您好 CB1、
很好的收获,我没有记得订购解锁序列的重要性。 是的、SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);需要在解锁过程被执行前被调用。
因此、正确的顺序是(为了 Sumit 的完全明确):
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD); HWREG (GPIO_PORTD_BASE+GPIO_O_LOCK)= GPIO_LOCK_KEY; HWREG (GPIO_PORTD_BASE+GPIO_O_CR)|= GPIO_PIN_7;
然后是任何配置 API。
感谢你抓住我的失败:)
拉尔夫
一如既往地感谢您。
你的 crüe 回答“那么多”-我的破解人员(但从来没有 Moi... HA!) 犯了这么多错误-它(几乎)卡住了!
您没有失败-海报"错过" PD7的(强制)要求-(这违反了 kiss)-偏离他的"中心目标!" KISS 规定 、"计划目标"最初应通过 最短/最简单和最直接的方式实现。 (即不通过任何端口解锁!)
实现这种简单 性的方法是:"最初选择一个不受"解锁"负担的 UART 引脚-使其正常工作-然后仅使用该代码(修改为用户所需的端口)与(稍后添加的)"端口解锁"结合使用。
已经证明、代码流程的捆绑"会出错!" 相反-将代码构建局限于单个流程 - 一次一个流程、测试/验证 (kiss)始终 是最佳的!