资料介绍
单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ms( )。
1.普通延时法
(1)普通延时法1
这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。下面的代码是在网上搜到的,经测试延时比较精准。
(2)普通延时法2
2.SysTick 定时器延时
CM3 内核的处理器,内部包含了一个SysTick 定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。SysTick 在STM32的参考手册里面介绍的很简单,其详细介绍,请参阅《Cortex-M3 权威指南》。
这里面也有两种方式实现:
(1)中断方式 如下,定义延时时间time_delay,SysTick_Config()定义中断时间段,在中断中递减time_delay,从而实现延时。
(2)非中断方式
主要仿照原子的《STM32不完全手册》。SYSTICK 的时钟固定为HCLK 时钟的1/8,在这里我们选用内部时钟源72M,所以SYSTICK的时钟为9M,即SYSTICK定时器以9M的频率递减。SysTick 主要包含CTRL、LOAD、VAL、CALIB 等4 个寄存器。
CTRL: SysTick控制和状态寄存器
LOAD: SysTick重装载值寄存器
VAL: SysTick当前值寄存器
CALIB:SysTick校准值寄存器
对这几个寄存器的操作被封装到core_cm3.h中:
SysTick->CTRL
SysTick-> LOAD
SysTick-> VAL
SysTick-> CALIB 不常用,在这里我们也用不到,故不介绍了。
程序如下,相当于查询法。
三种方式各有利弊,第一种方式容易理解,但不太精准。第二种方式采用库函数,编写简单,由于中断的存在,不利于在其他中断中调用此延时函数。第三种方式直接操作寄存器,看起来比较繁琐,其实也不难,同时克服了以上两种方式的缺点,个人感觉比较好用。
版权声明:本文为CSDN博主「魏波-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 《嵌入式 - 深入剖析STM32》STM32高精度延时实现
- STM32延时函数的三种方法
- 单片机:延时函数的理解
- 详细介绍STM32单片机常用库函数资料下载
- 51单片机常用库函数程序免费下载
- 51单片机的延时函数程序免费下载
- 单片机延时函数的资料合集免费下载
- 51单片机延时函数delay的编写实例函数和资料免费下载
- STM32F单片机FLASH的读写函数资料免费下载
- 51单片机的晶振11.0592M延时函数免费下载
- 51单片机的延时函数资料免费下载
- 51单片机延时函数计算问题以及如何准确延时的详细资料说明
- 单片机C语言中如何使用nop函数进行短延时的效果资料和程序说明 10次下载
- AVR单片机的延时函数程序免费下载 7次下载
- 实战中经常用到的元器件PCB封装库 0次下载
- 51、STM32单片机的编程方式一样吗? 4.3k次阅读
- STM32单片机常用库函数详细介绍与程序 5.9k次阅读
- Systick定时器延时原理与HAL_Delay()延时函数的使用 1.8w次阅读
- 51单片机的汇编程序库 1.1w次阅读
- STM32单片机中OBG调试接口的介绍 6.6k次阅读
- 单片机按键扫描程序和显示程序及延时程序解析 4.7k次阅读
- 浅析STM32调试过程中的几个相关问题 6.1k次阅读
- 单片机调试过程中的调试组件导致的问题 7.9k次阅读
- 基于STM32单片机的功能及特点 5w次阅读
- 一个比较有效的单片机编程思路 1w次阅读
- 单片机延时程序基本知识汇总 2.2w次阅读
- 单片机精确毫秒延时函数 1.3w次阅读
- 51单片机的几种精确延时 5k次阅读
- 单片机编程之汇编语言基础-常用指令和程序模式 1.6w次阅读
- 单片机开发过程中硬件调试技巧 1.5w次阅读
下载排行
本周
- 1冷柜-电气控制系统讲解
- 13.68 MB | 4次下载 | 10 积分
- 2安川A1000变频器中文版说明书
- 20.16 MB | 3次下载 | 3 积分
- 3直流电路的组成和基本定律
- 1.67 MB | 2次下载 | 免费
- 4丹佛斯2800系列变频器说明书
- 8.00 MB | 1次下载 | 5 积分
- 5PC8011同步开关型降压3.5A单节锂电池充电管理电路技术手册
- 0.74 MB | 1次下载 | 免费
- 6ES7243E+ES8311音频录制与播放电路资料
- 0.06 MB | 1次下载 | 5 积分
- 7SDM02 激光测距模块产品手册
- 0.43 MB | 1次下载 | 免费
- 8SDFM 激光测距模块模组手册
- 0.54 MB | 1次下载 | 免费
本月
- 1CH341编程器软件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下载 | 1 积分
- 22025智能家居传感器市场分析及创新应用
- 3.11 MB | 43次下载 | 免费
- 3RV1126B系列开发板产品资料
- 4.19 MB | 18次下载 | 免费
- 4CH341编程软件下载
- 2.50 MB | 16次下载 | 5 积分
- 5全志系列-米尔基于T153核心板开发板 四核异构、3路千兆网,赋能多元化工业场景
- 3.05 MB | 12次下载 | 免费
- 6【开源】60余套STM32单片机、嵌入式Linux、物联网、人工智能项目案例及入门学习资源包
- 10.55 MB | 8次下载 | 免费
- 7冷柜-电气控制系统讲解
- 13.68 MB | 4次下载 | 10 积分
- 8特斯拉MODEL S车载充电机主电路回路原理图
- 0.81 MB | 4次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233094次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191448次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183356次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81604次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73824次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论