首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

linux中的sleep函数和delay函数

对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令, 就可以完成多少个机器周期时长的延时...其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。...sleep和delay的区别 最明显也最重要的区别就是,在执行delay的时候,是执行了空指令,虽说是空的,但是还是会占用硬件资源,cpu要进行运算。...delay可以精确到us。...当我们在设置一个芯片的各种引脚时序的时候,间隔较短且要求更准确,就需要delay

3.6K10

STM32delay函数应用与说明

STM32delay函数应用应用与说明 Cortex M4内核编程手册有关时钟系统的内容 定时函数的实现 delay_init 函数 delay_us 函数 对与32中的delay函数有很多中形式可以使用...定时函数的实现 delay_init 函数 该函数用来初始化2个重要参数:fac_us以及fac_ms;tongshi ba SysTick的时钟源选择位外部时钟,在不加入系统的时候,延时初始化函数的代码如下...: // 初始化延时函数 //SYSTICK的时钟固定为HCLK时钟的1/8 static uint8_t fac_us=0; void delay_init(uint8_t SYSCLK) {...//nus:0~190887435(最大值即 2^32/fac_us@fac_us=22.5) void delay_us(uint32_t nus) { uint32_t ticks...told,tnow,tcnt=0; uint32_t reload=SysTick->LOAD; //LOAD 的值 ticks=nus*fac_us; //需要的节拍数 delay_osschedlock

81320
领券