我用STM8L101单片机做低功耗,因为内部32K RC振荡器(LSI)不准, 要测量先LSI的频率,再作校准。
可是调用库函数TIM2_ComputeLsiClockFreq()无效,仿真发现进入了函数内部的while 等待中,不知哪位高手有解??
int main( void ){
uint32_t fmaster =0; //测量到的LSI频率
CLK_PeripheralClockConfig(CLK_Peripheral_AWU,ENABLE); //使能AWU外设时钟
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE); //使能TIM2外设时钟
AWU_DeInit(); //AWU回复初始状态
AWU_Cmd(ENABLE);//使能AWU, !! 这句取消也一样
AWU->CSR |= AWU_CSR_MSR; //打开捕获开关
fmaster=TIM2_ComputeLsiClockFreq(16000000U);//调用库函数获得LSI频率
AWU->CSR &= (uint8_t)(~AWU_CSR_MSR); //关闭捕获开关
printf("f=%ld",fmaster); //显示测量到的LSI频率
while(1){
// .......
}
}
|