Systick是STM32中特有的系统时钟SysTIck有两个功能:1.可以产生精确延时;2.可以提供给系统一个单独的时钟节拍。一般延时程序:
DELAY(N)
{ for( i=0 ; i《=x ; i++ ) ;
}
对于STM32系列的微处理器中,执行一条指令只需要几十ns,进行for循环时,要实现N毫秒延时,那么x的意义非常大,而且由于系统频率的宽广,很难计算出延时N毫秒的精确值,那么在一些高速电路中,是不允许的,容易出现问题,很难查找出来。尤其在液晶驱动中,延时要求非常精确。针对STM32的处理器中,需要重新设计一个方法实现该功能,来代替DELAY(N)延时;
cortex-m3中包含了一个SysTIck时钟,SysTIck是一个24位的递减计数器,设定初值并使能后,每经过1个系统时钟周期,该计数器减1,计数到零时,sysTIck自动重装初值,并继续计数,同时内部的COUNTFLAG标志位会置1,触发中断(中断如果使能);
外部晶振是8MHz,9倍频,系统时钟为72MHz,systick的最大值为9MHz(最大值为HCLK/8),在这个条件下,如果将计数器的效验值设置为9000,将systick设置为9MHz,能够产生1ms的时基值,即systick产生1ms的中断,
systick时钟共包含4个寄存器:
1.CTRL COUNTFLAG CLKSOURCE TICOUNT ENABLE
2.LOAD
3.VAL
4.CALIB
利用ST库函数设置Systick的方法
1.调用SysTick_CountCmd() 失能SysTick计数器
2.调用SysTick_ITConfig() 失能SysTick中断
3.调用SysTick_CLKSourceConfig() 配置SysTick的时钟源
4.调用SysTick_SetReload() 设置SysTick 的效验值
5.调用SysTick_ITConfig() 使能SysTick中断
6.调用SysTick_CountCmd() 使能SysTick计数器
void SysTick_Config() //配置好,并将计数器使能
{
SysTick_CountCmd(SysTick_CountCmd_DISABLE);
SysTick_ITConfig(DISABLE);
SysTick_CLKSourceConfig( SysTick_CLKSourceConfig_EXTERN);
SysTick_SetReload(SysTick_SetReload_9000);
SysTick_ITConfig(ENABLE);
SysTick_CountCmd(SysTick_CountCmd_ENABLE);
}
延时函数:
void Delay_MS(u16 diy)
{
Delay=diy;
while(Delay);
}
extern vu16 Delay;
void SysTickHandle() /systick中断服务程序/
{
Delay--;
}
如果延时较长,那么该延时程序一定程度上还是在耗CPU的资源。
上一篇:用DMA实现多路ADC通道数据采集
下一篇:STM32的中断理解笔记
推荐阅读最新更新时间:2024-10-31 12:32
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 LTC3290EMSE#PBF 的参考设计
- 使用 Aimtec 的 AM2S-4803SZ 的参考设计
- 使用具有可编程电源电压的 ADXRS450 数字速率传感器和 ADuC7026 MCU 感测角速度
- MTRCKTSPS5604P,带 Qorivva MPC5604P MCU 的三相 PMSM 电机控制开发套件
- LTC3119EUFD 3.3V、500kHz 宽输入稳压器的典型应用电路
- LTM8064EY 58Vin、5Vout 降压型 CVCC 转换器的典型应用电路
- 小电视天气时钟
- ZXRE1004 Sot23微功率(4A)1.22V电压基准典型应用
- ADL5610-EVALZ,基于 ADL5610 30 MHz 至 6 GHz RF/IF 增益模块的评估板
- RGB灯
- 第二季学习体验活动风暴来袭!
- ADI•世健工业嘉年华——工业趴主题征文及投票活动!
- 直播预约 | 汽车圈盛会!第二届英飞凌汽车创新峰会(IACE)全程直播
- 亲历易电源——易电源电源模块试用!
- 等你报名做客黑科技直播间:基于 TI DLP®技术的工业创新应用介绍
- EEWORLD十周年为你而任性——上百块ST开发板团购盛宴开始啦!49元包邮,发帖还返现
- 4小时实战+剖析:TI工程师教你快速上手 各种无线产品开发 (限量$14售CC1352R1无线开发板,助你参与动手实验)
- 下载、答题赢好礼:使用Mentor的Xpedition Layout高效设计PCB
- 直播已结束【英飞凌全新Wi-Fi6单芯片SoC助力物联网产品的快速开发】(9:30入场)