一种采用SysTick中断实现精确延时的方法*

2017-09-03 09:22:44陶静
单片机与嵌入式系统应用 2017年8期
关键词:方法系统

陶 静

(全球能源互联网研究院,南京 210003)

一种采用SysTick中断实现精确延时的方法*

陶 静

(全球能源互联网研究院,南京 210003)

在使用STM32微控制器作为处理器的系统中,常采用递减函数实现延时,该方法适用于一般延时,实现精确延时时误差较大。本文介绍了一种采用SysTick中断实现精确延时的方法,该方法能大大提升延时精度。通过实验验证,SysTick中断方式可将1 μs延时的误差由26%降低至3%。

STM32;延时;SysTick

引 言

STM32是ST(意法半导体)公司发布的一款32位ARM微控制器,该微控制器基于针对高性能、低成本、低功耗的嵌入式应用设计的Cortex-M3内核。随着STM32在工业控制系统、无线网络与传感器等领域广泛应用,暴露出来的问题也越来越多,其中包含如何实现精确延时。常见的延时方法是调用递减函数,该方法能实现固定未知时间段的延时,但运用在对延时精度要求高的场合时(例如采用私有协议的高频通信、高频数据存储与解析等),误差较大。本文提出了一种基于SysTick的延时方式,能够很好地解决这个问题。

为了更好地说明并验证效果,本文以实现1 μs的延时为目标,以STM32F207ZGT6最小系统PCB板、Agilent Technologies MS07104B示波器、ST-LINK下载器为硬件环境,Keil μVision4为软件调试工具,进行程序编写及调试。

1 递减实现延时

1.1 方法介绍

在一般对延时精确度要求不高的场合下,例如:以一定的频率设置GPIO口的电平高低来点亮或熄灭LED灯、产生占空比为50%的PWM波形、随机延时等,常使用设置一个参数并调用递减函数的方式来实现延时。使用这种方法时需要按照以下步骤进行:

登录APP查看全文

猜你喜欢
方法系统
Smartflower POP 一体式光伏系统
工业设计(2022年8期)2022-09-09 07:43:20
WJ-700无人机系统
ZC系列无人机遥感系统
北京测绘(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA显示系统
学习方法
半沸制皂系统(下)
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
用对方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
赚钱方法