各位专家、您好!
在我的项目中、我在2个工作模式下使用了 MSP430FR5959,和2个不同的时钟'设置。
对于高频模式、我将时钟配置如下:
void sysclock_Init (void)
{
PJSEL0 |= BIT6 | BIT7;//用于 XT2
CSCTL0_H = CSKEY >> 8;//解锁 CS 寄存器
CSCTL2 = SELA_VLOCLK | SELS__HFXTCLK | SELM_HFXTCLK;//SELM__HFXTCLK
CSCTL3 = DIVA__1 | DIV__8 | DIVM__32;//将所有分频器设置为1
CSCTL4 |= HFXTDRIVE_0 | HFFREQ_1;//
CSCTL4 &=~(HFXTOFF);
操作
{
CSCTL5 &=~(HFXTOFFG);//清除 XT1和 XT2故障标志
SFRIFG1 &=~OFIFG;
} while (SFRIFG1&OFIFG);//测试振荡器故障标志
CSCTL0_H = 0;//锁定 CS 寄存器
}
对于低频工作模式、我将时钟配置为:
void sysclock_LowPowerMode( void )
{
CSCTL0_H = CSKEY >> 8;//解锁 CS 寄存器
CSCTL2 = SELA_VLOCLK | SELESS__LFMODCLK | SELM_LFMODCLK;// SELM__HFXTCLK
// CSCTL2 = SELA_VLOCLK | SELESS_VLOCLK | SELM_VLOCLK;
CSCTL3 = DIVA__1 | DIVM_1 | DIVM__1;//将所有分频器设置为1
CSCTL4 |= HFXTOFF;
CSCTL0_H = 0;//锁定 CS 寄存器
}
当器件在低频模式下工作时、MCU 将从 SPI 传感器读取数据、但数据不稳定。 但我不将时钟更改为低频模式、MCU 在高频模式下工作、通过 SPI 读取数据、数据正常。
请帮助我检查、当 MCU 在低频模式下工作时、SPI 读数为何不稳定?
非常感谢!