stm32F4学习笔记03-System文件夹下delay.c sys.c usart.c实现原理解析。

    今天学习一下正点原子的工程System文件夹delay.c sys.c usart.c源文件实现的原理

    1.delay.c

           delay_init()函数

 1 //初始化延迟函数
 2 //当使用OS的时候,此函数会初始化OS的时钟节拍
 3 //SYSTICK的时钟固定为AHB时钟的1/8
 4 //SYSCLK:系统时钟频率
 5 void delay_init(u8 SYSCLK)
 6 {
 7 #if SYSTEM_SUPPORT_OS                       //如果需要支持OS.
 8     u32 reload;
 9 #endif
10      SysTick->CTRL&=~(1<<2);                //SYSTICK使用外部时钟源     
11     fac_us=SYSCLK/8;                        //不论是否使用OS,fac_us都需要使用
12 #if SYSTEM_SUPPORT_OS                       //如果需要支持OS.
13     reload=SYSCLK/8;                        //每秒钟的计数次数 单位为M       
14     reload*=1000000/delay_ostickspersec;    //根据delay_ostickspersec设定溢出时间
15                                             //reload为24位寄存器,最大值:16777216,在168M下,约合0.7989s左右    
16     fac_ms=1000/delay_ostickspersec;        //代表OS可以延时的最少单位       
17     SysTick->CTRL|=1<<1;                    //开启SYSTICK中断
18     SysTick->LOAD=reload;                   //每1/delay_ostickspersec秒中断一次    
19     SysTick->CTRL|=1<<0;                    //开启SYSTICK    
20 #else
21     fac_ms=(u16)fac_us*1000;                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值