资料介绍
单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时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高精度延时实现 15次下载
- STM32延时函数的三种方法 1次下载
- 单片机:延时函数的理解 94次下载
- 详细介绍STM32单片机常用库函数资料下载 9次下载
- 51单片机常用库函数程序免费下载 22次下载
- 51单片机的延时函数程序免费下载 7次下载
- 单片机延时函数的资料合集免费下载 7次下载
- 51单片机延时函数delay的编写实例函数和资料免费下载 2次下载
- STM32F单片机FLASH的读写函数资料免费下载 9次下载
- 51单片机的晶振11.0592M延时函数免费下载 9次下载
- 51单片机的延时函数资料免费下载 3次下载
- 51单片机延时函数计算问题以及如何准确延时的详细资料说明 2次下载
- 单片机C语言中如何使用nop函数进行短延时的效果资料和程序说明 10次下载
- AVR单片机的延时函数程序免费下载 7次下载
- 实战中经常用到的元器件PCB封装库 0次下载
- STM32基于HAL库实现微秒延时 1114次阅读
- STM32的启动过程如何分析 955次阅读
- STM32单片机常用库函数详细介绍与程序 2667次阅读
- Systick定时器延时原理与HAL_Delay()延时函数的使用 1.1w次阅读
- 51单片机的汇编程序库 9023次阅读
- C语言编程常用的4种延时方法解析 7.1w次阅读
- 浅析STM32调试过程中的几个相关问题 4789次阅读
- 单片机调试过程中的调试组件导致的问题 7006次阅读
- 如何将STM32单片机中的函数调用到入口参数 5412次阅读
- 基于STM32单片机在手持设备中的应用设计 2364次阅读
- 基于单片机STM32 GPIO 基本简单操作函数教程 3020次阅读
- 一个比较有效的单片机编程思路 9514次阅读
- 单片机延时程序基本知识汇总 1.9w次阅读
- 单片机精确毫秒延时函数 1.1w次阅读
- 51单片机的几种精确延时 4307次阅读
下载排行
本周
- 1ATmega8芯片中文手册
- 2.45 MB | 3次下载 | 1 积分
- 2VGA 转 HDMI 输出的音视频采集卡LCC385数据手册
- 0.34 MB | 2次下载 | 免费
- 3全套DDR、DDR2、DDR3、DDR3L、LPDDR3 和 DDR4 电源解决方案同步降压控制器数据表
- 2.5MB | 1次下载 | 免费
- 4具有过压保护和阻断 FET控制功能的12V电子熔丝TPS25924x数据表
- 1.92MB | 1次下载 | 免费
- 5带自动重试功能的IEEE 802.3af PoE供电设备控制器TPS2375数据表
- 920.76KB | 1次下载 | 免费
- 6稳压5V、300mA高效电荷泵DC-DC转换器TPS6013x数据表
- 1.5MB | 1次下载 | 免费
- 7照明-电源-POE-GEVB评估套件数据手册
- 4.40 MB | 1次下载 | 免费
- 8集成 FET 的 2A 双通道同步降压开关TPS54295数据表
- 1.21MB | 次下载 | 免费
本月
- 1DC-DC电路(Buck)的设计与仿真
- 0.60 MB | 23次下载 | 2 积分
- 2UHD智能显示SoC VS680产品简介
- 0.46 MB | 11次下载 | 免费
- 3ES9038PRO解码芯片的电路原理图介绍
- 0.25 MB | 11次下载 | 5 积分
- 4东芝BiCD集成电路硅单片TB67S109AFNAG数据手册
- 1.93 MB | 6次下载 | 免费
- 5采用 Impedance Track™ 技术的宽量程电量监测计BQ34Z100-G1数据表
- 2.7MB | 6次下载 | 免费
- 616A 输出电流,高可靠、高效率 同步降压转换器PCD3201产品手册
- 0.47 MB | 6次下载 | 免费
- 7电池管理系统(BMS)软硬件介绍
- 0.23 MB | 5次下载 | 2 积分
- 8TDK电容器产品指南
- 11.88 MB | 5次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935085次下载 | 免费
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420048次下载 | 免费
- 3Altium DXP2002下载入口
- 未知 | 233067次下载 | 免费
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191315次下载 | 免费
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183315次下载 | 免费
- 6labview8.5下载
- 未知 | 81567次下载 | 免费
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73786次下载 | 免费
- 8NI LabVIEW中实现3D视觉的工具和技术
- 未知 | 70088次下载 | 免费
评论
查看更多