PREINT = (CLK_Apb_PclkFreq()>>15) -1 ;// 设置基准时钟分频器 CLK_Apb_PclkFreq() / 32768 -1
PREFRAC = (UINT32)CLK_Apb_PclkFreq() & 0x7fff;//CLK_Apb_PclkFreq() - (CLK_Apb_PclkFreq() / 32768) * 32768;
printf("PCLK:%d",CLK_Apb_PclkFreq());
printf("preint:%d\n",PREINT);
printf("prefrac:%d\n",PREFRAC);
写了个程序,结果内部时钟 不走,查了半天发现预分频器的值不对
可是
我的CLK_Apb_PclkFreq()的值为3000000,打印出来的 不会错的;
但是PREINT、PREFRAC 的值为什么是0,0 呢
好郁闷!!!!
我直接赋值都不行
但是在另一个版本中可以打印出来是:
Entry RTC_RegulatePCLK:3000000
preint:90
prefrac:18112
啊
我直接赋值90,18112然后打印 还是0,0
找到问题了,嗨,原来还有功率控制模块,把RTC模块禁用了,不为RTC提供时钟频率!!