基于STM32单片机利用ST库函数设置Systick

发布者:雅致书香最新更新时间:2021-05-21 来源: eefocus关键字:STM32  单片机  Systick 手机看文章 扫描二维码
随时随地手机看文章

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的资源。


关键字:STM32  单片机  Systick 引用地址:基于STM32单片机利用ST库函数设置Systick

上一篇:用DMA实现多路ADC通道数据采集
下一篇:STM32的中断理解笔记

推荐阅读最新更新时间:2024-10-31 12:32

STM32学习笔记——PWM基础知识与720电机驱动
1. 定义 脉冲宽度调制:是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。(百度百科)它是一种对模拟信号电平进行数字编码的方法,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。 **SPWM波形:**脉冲宽度按正弦规律变化而和正弦波等效的 PWM 波形。 把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形。如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩形脉冲的中点和相应正弦等分的中点重合,且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列,这就是PWM波形。根据冲量
[单片机]
<font color='red'>STM32</font>学习笔记——PWM基础知识与720电机驱动
谈谈如何提高单片机的模数转换精度
引 言 单片机应用于工业控制等方面时,经常要将电流、电压、温度、位移、转速等模拟量转换成数字量,然后在单片机内作进一步运算和处理,完成相应的数据存储、数据传输和数据输出,达到分析和控制的目的。随着大规模集成电路的不断发展,很多单片机都有内置A/D模块,因此,单片机的A/D转换可以用内置A/D模块也可以用外置A/D电路完成,现谈谈单片机A/D转换的工作原理及优缺点,并分析提高A/D转换精度的方法。 1 A/D转换的工作原理及优缺点 (1)单片机片内A/D转换 单片机片内A/D转换是利用单片机的内置A/D模块,通过选择不同的模拟量通道进行A/D转换。可以将模拟量直接输入到单片机对应的输入脚,外围电路简单。转换后的数据直接
[单片机]
谈谈如何提高<font color='red'>单片机</font>的模数转换精度
10KM远距多个单片机的主从方式串行通信分析
一、问题的提出   51系列单片机具有方便的串行通信功能,当串行口以方式2或方式3工作时,置SM2一l。此种情况下,仅当串行口接收到的第9位数据RBS为1时,才激活中断标志RI;否则不产生中断,信息被丢失。利用串行口的这个特性,便可实现主机一分机的串行通信。      对于分机一主机的通信,可以采用每台分机对主机的一对一通信。这种方式大大增加了主机的串行接口电路和传输电缆。如采用图1- 47所示结构,分机O~N的输出串接在一起,则会造成传输线2上信号紊乱,甚至会烧毁分机串行输出口。      另外,采用TTL电平通信,传输距离只有几米;如果采用RS一232C,传输距离也不过几十米,达不到10 km范围内的传输要求。      为解
[单片机]
10KM远距多个<font color='red'>单片机</font>的主从方式串行通信分析
Mouser荣获优秀MCU分销渠道企业大奖
半导体与电子元器件业顶尖工程设计资源与授权分销商贸泽电子(Mouser Electronics)宣布荣获《中国电子报》优秀MCU分销渠道企业大奖,该奖项评选基于中国MCU分销行业总体概况的多角度分析,综合分销渠道在功能、类型、设计、管理、风险应对和服务等方面的表现进行严格评分,最终评选出获奖公司。Mouser以广大工程师的利益为己任的原则,竭尽全力为中国工程师提供最快捷供货和最优质的支持服务。 “作为一流的半导体和电子元器件授权分销商,Mouser的e化供应链服务擅长于以最快的速度提供最新的半导体和电子元器件,全面支持客戶在产品设计阶段的需求。”Mouser亚洲区资深营运副总裁Mark Burr-Lonnon表示,“我们推出一
[单片机]
STM32外部中断笔记(一)
关于外部中断 前言: 1:Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此,STM32吧指定中断优先级的寄存器为减少到4位,即AIRCR的高四位,于是对四位进行分组: 组别 分配情况 第0组 0:4 无抢先式优先级,16 个子优先级 第1组 1:3 2 个抢先式优先级,8 个子优先级 第2组 2:2 4 个抢先式优先级,4 个子优先级 第3组 3:1 8 个抢先式优先级,2 个子优先级 第4组 4:0 16 个抢先式优先级,无子优先级 使用函数:NVIC_PriorityGroupConfig(NVIC_Priori
[单片机]
低成本浮点Piccolo MCU推动低能耗实时控制应用发展
曾以通用DSP闻名于世的TI公司, 已有25年的DSP开发经验,其中让人津津乐道的DSP产品C2000系列最早是为工业应用而开发的。目前C2000产品线已作为MCU产品而存在,为实时控制量身打造,分成Delfino和Piccolo两个系列。近日, 德州仪器 (TI)携15款最新的 Piccolo 浮点 MCU重磅出击,为低能耗电机控制与可再生能源应用带来的阵阵福音。 15款TMS320F2806x Piccolo浮点MCU,可提供能平衡低成本 Piccolo 与高性能 Delfino™ 浮点微控制器 (MCU) 的性能,具备优异的数学引擎,包括 80 MHz 浮点 C28x™ 内核、最新维特比复杂数学单元 (VCU) 以及控制
[单片机]
低成本浮点Piccolo <font color='red'>MCU</font>推动低能耗实时控制应用发展
瑞萨发布10个型号32位CISC微控制器H8SX系列
2008 年 6 月 9 日 ,瑞萨科技 正式 推出四个家族总共 10 个型号 ( 15 个型号名称 ) 产品 —— 分别命名为 H8SX/1645 、 H8SX/1635 、 H8SX/1665 和 H8SX/1655 。这些器件均为32位CISC(复杂指令集计算机)微控制器H8SX系列的产品,具有增强的模拟外设功能,包括更快的A/D转换和更高精度的D/A转换。这些新品的样品将从2008年9月开始依次在日本交付。 这四个家族的微控制器是瑞萨目前的H8SX/1648、H8SX/1638、H8SX/1668R和H8SX/1658R产品的后续产品,可以提供增强的模拟外设功能,同时保持了与这类产品的引脚兼容
[单片机]
cJson移植到STM32系统
一、下载cJson文件 实际只包含了cJSON.C,cJson.h,cJson_utils.c,cJson_utils.h 二、添加到工程 三、修改代码: 在cJson_utils.c中增加 点击(此处)折叠或打开 char * strdup(const char *s) { size_t len = strlen(s) +1; void *new = malloc(len); if (new == NULL) return NULL; return (char *)strncpy(new,s,len); } 四、测试在main.c中增加 点击(此处)折叠或打开
[单片机]
cJson移植到<font color='red'>STM32</font>系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved