- void delay_nus(u16 time)
- {
-
u16 i=0; -
while(time--) -
{ -
i=10; //自己定义 -
while(i--) ; -
} - }
- void delay_nms(u16 time)
- {
-
u16 i=0; -
while(time--) -
{ -
i=12000; //自己定义 -
while(i--) ; -
} - }
- SysTick_Config(SystemCoreClock
/ 10) 函数的形参就是systick重装定时器的值。 - systick计数频率为每秒72000000次,所以7200000次就是1/10秒,也就是100ms。
- SysTick是1个24bit递减计数器,通过对SysTick控制与状态寄存器的设置,可选择HCLK时钟(72M)或HCLK的8分频作为SysTick的时钟源。//V3.5默认为HCLK时钟
- SysTick的重装寄存器决定了定时器频率。
- 若SysTick的时钟源是72M,
SystemFrequency = 72000000Hz - 所以 SysTick_Config(SystemCoreClock
/ 1000); 就是1ms时基。
SysTick的初始化设置: voidInit_SysTick(void) { if(SysTick_Config(SystemCoreClock / 1000)) //注意:3.5库中 SystemFrequency 被 SystemCoreClock 取代。 while(1); } 延时函数: __IO uint32_t TimingDelay; void delay_ms(__IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay != 0); } 中断函数: extern __IO uint32_t TimingDelay; void SysTick_Handler(void) { if (TimingDelay != 0x00) { TimingDelay--; } } delay_ms(1000);
上一篇:STM下纯软件实现精确定时
下一篇:关于STM32串口发送的奇怪问题
推荐阅读最新更新时间:2024-03-16 14:49
- 热门资源推荐
- 热门放大器推荐
设计资源 培训 开发板 精华推荐
- 泰克70周年庆 了解新品 参与掀盖有礼活动 最多可获得6次抽奖机会
- Intel有奖下载之七,礼品多多等你拿!
- 看专题答题赢好礼!PI 稳定可靠的TOPSwitch-JX开关电源IC
- ADI 低压断路器应用中的电子脱扣器(ETU)解决方案
- TI 工业月,灵感不设限!深度挖掘工业设计的痛点和难点,读专题填问卷赢好礼!
- 4月26日上午10:00邀您观看 基于TI Sitara™AM5708的工业派开源平台介绍 有奖直播
- 【EEWORLD第二十五届】2011年04月社区明星人物揭晓!
- 逛村田在线云展厅,看干货,闯关赢好礼!
- MPS有奖活动|梦想设计闪亮登场,便携式多功能电工台诞生啦!
- 4小时实战+剖析:TI工程师教你快速上手 各种无线产品开发 (限量$14售CC1352R1无线开发板,助你参与动手实验)