发布日期:2022-04-17 点击率:53
图片源于网络
在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时?它们又有什么区别呢?
硬件和软件延时
延时的种类很多,先给大家普及一下延时相关概念和分类。
1.硬件延时
指利用具有计数功能的硬件进行延时。比如:定时器(Timer)、 实时时钟(RTC)、 系统滴答定时器(SysTick)等具有计数功能的硬件。
2.软件延时
相对硬件延时而言,软件延时就是写一段软件代码,通过消耗CPU时间进行延时。比如软件延时函数:
阻塞和非阻塞延时
实际应用中,延时分阻塞和非阻塞延时。
1.阻塞延时
指CPU一直停留阻塞,不去做其它事情,直到延时结束结束。像上面那个软件延时(Delay)就是一个典型的阻塞延时,一直消耗CPU,直到延时结束。
2.非阻塞延时
指在延时期间,没有阻塞CPU,也就是说CPU在延时期间可以执行其它代码。比如:利用定时器中断延时,只需要开启定时器,在中断(计数)到来之前,CPU可以执行其它代码。
3.额外举例
a.利用定时器也能实现阻塞延时,比如STM32的HAL自带的阻塞延时:
b.利用RTOS自带的系统延时实现非阻塞延时,这个实现原理实际是利用了硬件延时(系统滴答定时器)。
下一篇: PLC、DCS、FCS三大控
上一篇: 如何在MCU上测量代码