初始化使用HSI作为时钟源问题

2019-07-19 20:20发布

本帖最后由 静风沐雨 于 2019-1-3 10:40 编辑

开发板复位 CLK_ICKCR_HSIRDY 一直是处在准备好的状态"1", 但是我实际使用中,使用原子的延时函数,发现误差挺大2ms的延时测试为2.12ms,
我在clk初始化后面加一个10us延时,延时函数就准了,2ms延时,测试2.00x ms。
SystemClockInit(CLK_SOURCE_HSI,CLK_PRESCALER_1); DelayInit(16); DelayUs(10u);

我想问下使用内部时钟函数的时候该怎么写比较好?我这种情况是不是因为时钟没稳定造成的?
时钟函数代码;CLK->SWR = CLK_SOURCE_HSI;CLK->CKDIVR = CLK_PRESCALER_1;       while(0u == ((CLK->ICKCR)& CLK_ICKCR_HSIRDY)){}CLK->SWCR |= CLK_SWCR_SWEN;
while(1)循环体中的内容{ GPIO_SetBits( GPIOF,  GPIO_Pin_7);  DelayUs(1000u);
  GPIO_ResetBits( GPIOF,  GPIO_Pin_7);  DelayUs(1000u);}

参照 QQ图片20190103102700.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。