板子上面的是有源晶振。用示波器也看了,频率是32.768Hz. 使用CS_LFXTCLK_SELECT作为ACLK的时钟源然后在程序里面读取ACLK,发现并不是32768,而是39062.不知道大家有没有遇到过这个问题。
这个是我程序的时钟设置
void SysClockInit(void)
{
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_PJ,GPIO_PIN4+ GPIO_PIN5,GPIO_PRIMARY_MODULE_FUNCTION);
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_PJ,GPIO_PIN6 + GPIO_PIN7,GPIO_PRIMARY_MODULE_FUNCTION);
// Set DCO frequency to 1 MHz
CS_setDCOFreq(CS_DCORSEL_0, CS_DCOFSEL_0);
CS_setExternalClockSource(32768, 16000000);
CS_initClockSignal(CS_ACLK, CS_LFXTCLK_SELECT, CS_CLOCK_DIVIDER_1); //Set ACLK=LFXT
CS_initClockSignal(CS_SMCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_2);//SMCLK=16M/2=8M
CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);
CS_turnOffLFXT();
CS_bypassLFXT(); //工程版上的
} |