MSP430FR2111官网例程和实际运行结果有差异
[复制链接]
在TI官方提供的 例程里面有这个 msp430fr211x_lpm3_5_01.c 关于LPM3的程序,根据这个程序的提示:
(直接上干货,其他的省略了)
// First determine whether we are coming out of an LPMx.5 or a regular RESET.//这句英文是官网的原话。
if (SYSRSTIV == SYSRSTIV_LPM5WU) // When woken up from LPM3.5, reinit
{
// If MCU wakes up from LPM3.5, re-init and then return to LPM3.5 again.//这句英文是官网的原话。
//我在这里写了FRAM一个地址A的数据等于0x55,防止调试误差,直接上电运行,然后通过JTAG再查看内存结果。
}
else {}
//在这里写FRAM一个地址B的数据+1;
根据这个程序,从LPM3.5退出后,应该重新从main开始执行,然后可以根据这个IF判断执行相应代码。
但是自己上,不论通电断电多次然后查看FRAM还是,通过JTAG_SBW,结果都是:
A,一直是0XFF,
B的数据每次重启后+1。
退出低功耗模式后,继续执行下一句代码,而不是复位进入main,这和例程完全不相同啊。
本来按我的理解也应该是唤醒后执行下一句代码,但是好歹是官网的例程,我怀疑是不是我哪里疏漏了?
欢迎,各路大神指导!
送上官网例程下载链接,欢迎各路吃瓜群众围观
http://www.ti.com.cn/general/cn/docs/lit/getliterature.tsp?baseLiteratureNumber=slac715&fileType=zip
补充内容 (2019-9-12 10:39):
问题解决了,少了两句配置语句:
PMMCTL0_H=PMMPW_H;//打开PMM寄存器进行写入
PMMCTL0_L|= PMMREGOFF;//并设置PMMREGOFF
因此实际上只是进入了LPM3,而不是LPM3.5
|