求问STM32F411运行的最低系统时钟

2019-07-20 17:24发布

我采用的24M外接晶振,在降低系统主频的时候,当SCLK低于30M时,systick不能正常工作。
例如时钟配置如下:
PLL_M = 24; PLL_N = 250; PLL_P = 10;  PLL_Q = 8;
RCC_HCLKConfig(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div4);
RCC_PCLK2Config(RCC_HCLK_Div2);
得到25M主频的时候,但是delay 1s实际只delay了250ms;LED灯可以正常点亮。
delay函数如下:
void delay_ms(u32 mTime)
{
  u32 temp;
  SysTick->LOAD = 3.125*1000*mTime;
  SysTick->VAL = 0x00;
        SysTick->CTRL = 0x01;//ê1Äü
        do
        {
         temp = SysTick->CTRL;
        }while((temp&0x01)&&(!(temp&(1<<16))));
         
        SysTick->CTRL = 0x00;
        SysTick->VAL = 0x00;
}



请问这是什么情况呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
IsLuo
1楼-- · 2019-07-20 21:11
 精彩回答 2  元偷偷看……
IsLuo
2楼-- · 2019-07-20 22:06
4Mhz...........................
iyuanzuo
3楼-- · 2019-07-21 03:28
IsLuo 发表于 2017-1-13 16:10
4Mhz...........................

那delay工作不准确,是啥原因导致的啊?
IsLuo
4楼-- · 2019-07-21 05:41
iyuanzuo 发表于 2017-1-13 16:14
那delay工作不准确,是啥原因导致的啊?

看看时钟配置有没有什么问题
iyuanzuo
5楼-- · 2019-07-21 07:24
IsLuo 发表于 2017-1-13 16:27
PLL_M = 24; PLL_N = 250; PLL_P = 10;  PLL_Q = 8;你的这句话里面有错误的额  PLL_P只能等于2 4 6 8 这四 ...

哇哦,太感谢了!果然是这个问题导致的!
iyuanzuo
6楼-- · 2019-07-21 12:03
 精彩回答 2  元偷偷看……

一周热门 更多>