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.

[参考译文] MSP430F5172:PM5CTL0 &放大器;=~LOCKLPM5;在调试&放大器期间导致锁定;运行时间?

Guru**** 2539500 points
Other Parts Discussed in Thread: MSP430FR5739, MSP430F5172

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/847032/msp430f5172-pm5ctl0-locklpm5-causes-lock-up-during-debugging-run-time

器件型号:MSP430F5172
主题中讨论的其他器件:MSP430FR5739

我来自 MSP430FR5739。   在该系列中、必须在配置引脚后禁用 GPIO 的高阻态加电默认状态、以便设置生效。  

例如、

void main (void)
{
P2DIR |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT4 + BIT4 + BIT6 + BIT4;//使 P2.x 成为所有输出
PM5CTL0 &=~LOCKLPM5; //禁用 GPIO 上电默认高阻抗模式

while (1)
{
P2OUT |= BIT0;
_delay_cycles (16000000);
P2OUT &=~(BIT0);
__DELAY_CYCLES (16000000);
}
} 

在为 MSP430FR5739编写/编译的程序中、上述示例每1秒切换一次 P2.0引脚。

但是、在我为 MSP430F5172编写/编译的代码中、程序似乎冻结并在 PM5CTL0线路上锁定。  当进入调试模式并在每行中单步执行时、只要达到此行、Code Composer Studio 就会显示:


我以前从未见过这种情况、也不知道是什么问题、也不知道如何解决它。  此选项卡/消息弹出后、单步执行代码是不可能的、并且不再起作用。   

这是什么问题?

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

    尊敬的 Adam:

    由于 MSP430F5172不需要该代码行、因此会出现问题。 请参阅 TI Resource Explorer 中的 MSP430F5172示例代码 、了解如何正确初始化该 MCU 内的 GPIO 外设的代码示例。

    此致、

    Matt

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

    更具体地说:

    1) 1) F5上的 PM5CTL0受 PMM 锁保护。 如果您在这一行前面加上"PMMCTL0_H = 0xA5";它将做正确的事情..

    2) 2) F5上的 LOCKLPM5在复位时不会自动置位。 如果您不使用 LPMx.5、并且在这一行前面加上"IF (PM5CTL0和 LOCKLPM5)"、那么它将会做正确的事情。

    第二个时钟可能比第一个时钟多1个时钟(这可能无关紧要)。 第一个会将 PMM 寄存器保持解锁状态(这可能很重要)。

    或者、您只能#if out、而不能进一步思考。