sys文件中delay函数的问题

2019-07-20 13:11发布

sys文件的的延时函数是用内核的滴答时钟做的。
我最近想把这个函数用在stm32f413开发板上,这个板子没有接外部高速时钟(HSE)。所以用标准库函数配置后,会使用内部高速时钟(HSI)作为系统时钟。
HSI的频率是16MHz,系统的时钟也就为16MHz。然后我套用sys文件中的关于delay配置的函数,基本什么都没改,这时 滴答时钟的频率=系统频率/8=2MHz,
然后我在主函数初始化delay函数如下
delay_init(16);

可是我在使用延时时,比如
delay_ms(1000);//延时1s

结果根本没有1s就结束了,
以上是我的理解,不知道问题出在哪儿。求助



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
还是看不穿
2019-07-21 07:19
还是看不穿 发表于 2017-7-24 11:46
确实是时钟的配置问题。我在main()函数的初始位置中增加下面语句
[mw_shl_code=applescript,true]RCC_ ...

[mw_shl_code=applescript,true]void SystemInit(void)[/mw_shl_code]
这里面的有两句是配置为HSI的  
[mw_shl_code=applescript,true]  /* Reset the RCC clock configuration to the default reset state ------------*/
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;

  /* Reset CFGR register */
  RCC->CFGR = 0x00000000;[/mw_shl_code]

这个函数后面的配置,都是对相应寄存器进行重置 然后在后面调用下面这个函数
[mw_shl_code=applescript,true] /* Configure the System clock source, PLL Multiplier and Divider factors,
     AHB/APBx prescalers and Flash settings ----------------------------------*/
  SetSysClock();[/mw_shl_code]

正真完成时钟的配置,但是这个函数是针对HSE配置的,我的板子

一周热门 更多>