2019-08-14 19:01发布
mashuntao 发表于 2016-9-15 22:31 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);系统时钟的8分频,systick就是9M,24位的倒数计 ...
最多设置5个标签!
不是啊,72000000/(1000*72000)=1ms,你要分清楚时间和频率撒。
这个原子哥应该解释过了:
因为SysTick_Config();函数中
执行位操作的两个变量STK_LOAD和STK_VAL都是二十四位的。所以你要调用该函数所使用的参数不能超过2的24次方、
所以为了防止出现莫名其妙的错误,传入SysTick_Cofig();函数的值应当小于2的24次方。
SysTick_Config();函数内部集成了对输入参数检查的函数,
if (ticks>SysTick_LOAD_RELOAD_Msk)
return (1);
就是说,如果你输入SysTick_Config();的参数超出2的24次方会立即返回1
if(SysTick_Config(SystemCoreClock / 1000))
while(1);
SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;//关闭系统滴答定时器;
so、原子哥利用SysTick_Config();的返回值判断你是否配置对了,
如果配置错了,你的程序会立即进入死循环。
如果判断对了、
执行下一步。就是关闭滴答定时器。
我是初学者。如果哪点有问题。希望多多包涵。
一周热门 更多>