麻豆短视频app下载

  • IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
2021 OEM
嵌入式系统

MCU硬件延时和软件延时有什么区别?

  2021年06月23日  

图片源于网络

  在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时?它们又有什么区别呢?

硬件和软件延时

  延时的种类很多,先给大家普及一下延时相关概念和分类。

1.硬件延时

  指利用具有计数功能的硬件进行延时。比如:定时器(Timer)、 实时时钟(RTC)、 系统滴答定时器(SysTick)等具有计数功能的硬件。

2.软件延时

  相对硬件延时而言,软件延时就是写一段软件代码,通过消耗CPU时间进行延时。比如软件延时函数:

阻塞和非阻塞延时

  实际应用中,延时分阻塞和非阻塞延时。

1.阻塞延时

  指CPU一直停留阻塞,不去做其它事情,直到延时结束结束。像上面那个软件延时(Delay)就是一个典型的阻塞延时,一直消耗CPU,直到延时结束。

2.非阻塞延时

  指在延时期间,没有阻塞CPU,也就是说CPU在延时期间可以执行其它代码。比如:利用定时器中断延时,只需要开启定时器,在中断(计数)到来之前,CPU可以执行其它代码。

3.额外举例

  a.利用定时器也能实现阻塞延时,比如STM32的HAL自带的阻塞延时:

  b.利用RTOS自带的系统延时实现非阻塞延时,这个实现原理实际是利用了硬件延时(系统滴答定时器)。

  当然,这个延时的原理(延时函数代码)相对比较复杂,对于普通用户只需要知道如何调用以及简单原理即可。通常在一些RTOS的(Demo)例子的任务中都有系统延时,比如ucos非阻塞延时:

  再比如FreeRTOS非阻塞延时:

硬件和软件延时区别

  通过以上分析,其实不难得出,硬件延时相对软件延时更普遍。

  1.软件相对硬件延时精度更差;
  2.软件延时为阻塞延时,硬件延时可阻塞,也可非阻赛延时;
  3.硬件延时应用更灵活、更广泛;

  实际应用中,硬件延时、非阻塞延时相对更普遍。

标签:嵌入式  MCU  我要反馈
最新视频
汇川技术总部大厦启幕—源起初心,工业回归至善至美   
施家“智”水—探访桂林城北水厂二期   
魏德米勒联接咨询服务
专题报道
《建筑是凝固的音乐》ABB电气系列大片上映
《建筑是凝固的音乐》ABB电气系列大片上映 ABB 网罗了遍布全球的创新建筑案例,通过精心制作的《建筑是凝固的音乐》系列视频,向大家揭秘世界上一些独特建筑及其建筑师的幕后故事,带领大家一起领略那些历久弥新、永不过时的建筑设计和解决方案。
企业通讯
魏德米勒线上嘉年华-创新自动化解决方案来袭!
魏德米勒线上嘉年华-创新自动化解决方案来袭!

魏德米勒线上嘉年华-创新自动化解决方案来袭!里面包罗万象,好看、好玩、好听的样样齐全,全方位的展示可谓酷炫至极,魏德米勒

推动企业能源管理 助力行业低碳之路
推动企业能源管理 助力行业低碳之路

双碳政策、多地限电限产的大环境下,如何落实环境、社会、和公司可持续发展,创造企业经营优势成为众多制造业的热门话题。当制造

在线会议

社区