初学者问个系统时钟计算的问题。。。
时间:10-02
整理:3721RD
点击:
各位高手别见笑、、、

我想问图中的 dalay延时为什么会是0.5秒。不是说重装载值=频率乘以想要定的时间吗。

我想问图中的 dalay延时为什么会是0.5秒。不是说重装载值=频率乘以想要定的时间吗。
好像是单位的问题
哈? 。 他重载值那里 是 9000乘以500 吧。 不懂怎么会定时为0.5秒。还是我本身的思维就错了。
难道高手对这个白菜问题都不屑一顾。
你这是谁的代码?
网上的。这不重要吧。
这要看你systick是怎么写的,你要知道的是你的delay_ms(1),是不是真的1ms
其实你这个问题只需要看delay_ms()这个程序就行了,应该是一个基本的延时函数
systick的时钟是HCLK,也就是72M,如果要计时1毫秒,那要72*1000,你这个代码中装载的值极有可能是错误的。
SysTick->CTRL=0X01; 这句话的作用是采用外部时钟源AHB/8,接下来的计算你应该自己会推了,手册上有这些寄存器的配置详细说明,不要太相信别人的注释了,也许他自己知道,但是没有详细说明。
SysTick->CTRL=0X01系统时钟8分频即9MHZ,如果SysTick->LOAD=9000,意思是从9000往下减,减9000次到0,花了1ms的时间(因为SysTick的时钟为9MHZ,上面讲过),所以SysTick->LOAD=9000*i代表花了 i ms的时间
