主题中讨论的其他器件:MSP430FR2355、 LP-MSPM0G3507
工具与软件:
我当前用于测试振荡器设置的代码如下:
int main(void) {
WDT_A_hold(WDT_A_BASE);
//Configure MCLOCK OUtput Pin
GPIO_setAsPeripheralModuleFunctionOutputPin(
GPIO_PORT_P3,
GPIO_PIN0,
GPIO_PRIMARY_MODULE_FUNCTION
);
//Configure XIN and XOUT pins
GPIO_setAsPeripheralModuleFunctionInputPin(
GPIO_PORT_P2,
GPIO_PIN7,
GPIO_SECONDARY_MODULE_FUNCTION
);
//Turn on bypass mode
CS_bypassXT1();
//source MCLOCK from XT1
CS_initClockSignal(CS_MCLK,CS_XT1CLK_SELECT,CS_CLOCK_DIVIDER_1);
//Clear flags after starting oscillator
CS_clearAllOscFlagsWithTimeout(1000);
while(1){
}
}
运行时、此代码无法尝试调用 CS_bypassXT1()。 它停留在 cs.c 中的以下 while 语句上:
while (HWREG8(CS_BASE + OFS_CSCTL7) & (XT1OFFG)) {
//Clear OSC fault flags
HWREG8(CS_BASE + OFS_CSCTL7) &= ~(XT1OFFG);
// Clear the global fault flag. In case the XT1 caused the global fault
// flag to get set this will clear the global error condition. If any
// error condition persists, global flag will get again.
HWREG8(SFR_BASE + OFS_SFRIFG1) &= ~OFIFG;
}
如有任何帮助、将不胜感激


