对delay_init函数的理解

2019-07-21 01:23发布

delay_init函数困扰了我很久,今天理解了。

        Stm32_Clock_Init(9); delay_init(72);     初始化的语句,即sysclk=72,fac_us=9(无单位)。外部晶振为8MHZ, “Stm32_Clock_Init(9)”将时钟倍频到72MHZ。systick的时钟为外部时钟的1/8,所以systick(系统时钟)为9MHZ。系统运行9M次耗时1s,因此运行9次耗时1us。
    fac_us没有单位,它只是在重装初值时起到作用,比如Systick->LOAD=nus*fac_us.
我是菜鸟,以上是我的理解,有问题希望大家改正。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
正点原子
1楼-- · 2019-07-22 11:34
 精彩回答 2  元偷偷看……
kdn
2楼-- · 2019-07-22 13:37
回复【8楼】正点原子:
---------------------------------
就像说,在液晶显示实验里面,我把延时初始化函数去掉了,怎么就显示不了了呢
正点原子
3楼-- · 2019-07-22 14:04
回复【9楼】kdn:
---------------------------------
因为液晶初始化用到了延时函数,你屏蔽了初始化,延时就不准,不准就要出问题,出问题就lcd不显示了....
kdn
4楼-- · 2019-07-22 15:05
回复【10楼】正点原子:
---------------------------------
是这样,好的
nicole088
5楼-- · 2019-07-22 16:09
请问外部晶振为25MHZ时,Delay_init函数怎么修改?
ForestLi
6楼-- · 2019-07-22 20:42
 精彩回答 2  元偷偷看……

一周热门 更多>