sys文件的的延时函数是用内核的滴答时钟做的。
我最近想把这个函数用在stm32f413开发板上,这个板子没有接外部高速时钟(HSE)。所以用标准库函数配置后,会使用内部高速时钟(HSI)作为系统时钟。
HSI的频率是16MHz,系统的时钟也就为16MHz。然后我套用sys文件中的关于delay配置的函数,基本什么都没改,这时 滴答时钟的频率=系统频率/8=2MHz,
然后我在主函数初始化delay函数如下
delay_init(16);
可是我在使用延时时,比如
delay_ms(1000);//延时1s
结果根本没有1s就结束了,
以上是我的理解,不知道问题出在哪儿。求助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
[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配置的,我的板子
一周热门 更多>