问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

stm32中Delay()函数延时的时间是怎么计算的?

发布网友 发布时间:2022-04-25 12:41

我来回答

3个回答

热心网友 时间:2024-11-12 09:55

单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us(

)和毫秒级delay_ms(

)。1.普通延时法这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。下面的代码是在网上搜到的,经测试延时比较精准。//粗延时函数,微秒

void delay_us(u16 time)

{

u16 i=0;

while(time--)

{

i=10; //自己定义

while(i--) ;

}

}

//毫秒级的延时

void delay_ms(u16 time)

{

u16 i=0;

while(time--)

{

i=12000; //自己定义

while(i--) ;

}

}2.SysTick 定时器延时CM3 内核的处理器,内部包含了一个SysTick

定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD

寄存器中自动重装载定时初值。只要不把它在SysTick

控制及状态寄存器中的使能位清除,就永不停息。SysTick 在STM32

的参考手册里面介绍的很简单,其详细介绍,请参阅《Cortex-M3 权威指南》。

这里面也有两种方式实现:a.中断方式

如下,定义延时时间time_delay,SysTick_Config()定义中断时间段,在中断中递减time_delay,从而实现延时。

volatile unsigned long time_delay; //

延时时间,注意定义为全局变量

//延时n_ms

void delay_ms(volatile unsigned long nms)

{

//SYSTICK分频--1ms的系统时钟中断

if (SysTick_Config(SystemFrequency/1000))

{

while (1);

}

time_delay=nms;//读取定时时间

while(time_delay);

SysTick->CTRL=0x00; //关闭计数器

SysTick->VAL =0X00; //清空计数器

}

//延时nus

void delay_us(volatile unsigned long nus)

{

//SYSTICK分频--1us的系统时钟中断

if (SysTick_Config(SystemFrequency/1000000))

{

while (1);

}

time_delay=nus;//读取定时时间

while(time_delay);

SysTick->CTRL=0x00; //关闭计数器

SysTick->VAL =0X00; //清空计数器

} //在中断中将time_delay递减。实现延时void

SysTick_Handler(void)

{

if(time_delay)

time_delay--;

热心网友 时间:2024-11-12 09:59

根据你的时钟频率计算的,1个延时差不多运算一次,减一次数,比如48MHZ,延时10000就是(10000/48MHZ)秒

热心网友 时间:2024-11-12 10:01

以SysTick的初值是720为例,系统时钟为72m。SysTick记720个数产生一次中断。这样算也就是1秒产生100000次中断(1次10us)。当Delay(x)中x大于0时会将x传给一个全局的变量使他在每发生一次中断之后自减1.系统卡在等待这个变量变为零的死循环上直到这个全局来量变为零。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
吃干燥剂会有什么反应 干燥剂不慎食用怎么办 于冕被流放多少时间才回来 石羊场客运站坐几路公汽到成都市龙潭社区保平村九组? 从成都石羊场到龙潭寺北湖客运站做地铁公交咋个赶车呀?老师们_百度知 ... 成都理工大学坐车到石羊场客运站怎么走?大概要多久啊?谢谢!! 请问一下成都理工大学到石羊车站怎么做车啊? 还在盲目护理毛孔吗?如何正确护理毛孔? 毛孔粗大该如何处理? 脸t区毛孔粗大怎么办 毛孔粗大的原因是什么 网络延时是什么意思啊? 王者荣耀什么是互联网延迟,什么是基站延迟?两个都指什么? ...是PING?什么是延迟?什么是延时?什么是延迟时间?什么是时延?_百度... 延迟时间的工学含义 延迟时间的介绍 ...什么是FPS?什么是PING?什么是延迟?什么是延时?什么是延迟时间... 网络延迟的定义方法 安全防范中的延迟时间是指什么? 延迟时间的IT含义 时间延迟的什么是时间延迟 网络中delay和latency的区别 自动控制原理延迟时间定义 超神奇的3D打印笔,火爆中的爆款怎么做到的 3D打印笔:在家就可以做一个,真不是什么黑科技 三d打印笔怎么做水果拼盘 用3d打印笔做的东西算不算科技制作? 3d 打印笔怎么用? 3D打印笔有什么用?当礼物送给小朋友可以吗? 怎么用3D打印笔制作一个能够载客的索道 怎么用3d打印笔做立体的星黛露 732233股票什么时候上市 2017借壳上市的股票 2017年以后上市的股票股价20元以上的股票有哪几只? 塑料杯底部“pp5”是什么意思? 长川科技股是什么时候上市?长川科技股票业绩大全?300604长川科技属于... 塑料杯子底部的PP5是什么意思? Pp5塑料杯装热水有致癌物质吗 如何在股票软件中查阅2017年在二级市场上市的所有公司? 这是买咖啡送的杯子,对身体有害吗?杯盖印着PP5 保温杯的杯盖有异味儿可以给宝宝用吗? 星巴克买的塑料杯,这种材质安全吗?可以用热水泡吗?会有双酚A吗?_百度知... 请问这种pp材质做的杯盖对小孩子有害没? 保温杯的盖子是塑料的,喝水会有影响吗? 为什么乐扣的茶杯比搅拌杯贵这么多? ...里面的数字05下面还有pp的字样,杯盖上也有一个三角形标准,里面是... 保温杯塑料盖什么标准是安全 PP材质的杯盖,有些上面会有时钟一样的图案,这些图案代表什么? 水杯的杯盖用什么塑料?原料颗粒一般多少钱~? 保温杯盖有谁了解聚丙烯请进 罐装啤酒如何开