stm32中的系统滴答定时器使用

发布者:leader5最新更新时间:2019-01-02 来源: eefocus关键字:stm32  系统滴答定时器 手机看文章 扫描二维码
随时随地手机看文章

系统滴答定时器对于stm32的初学者来说还是非常重要的,因为随着你学习的深入编程过程中肯定会调用延时函数,比如我之前的一些gpio相关的实验中。那么延时函数的编写也是几种方法的,一般开始接触都是让系统循环等待,利用stm32处理程序所用的机器时间去延时。这种延时函数如下图所示:


        

很显然这是一个弊端很明显的做法,因为在延时函数进行时系统无法进行其它操作,这样大大降低了系统的效率。所以我们一般在编程中都会去利用定时器去定时。下面我就介绍下用系统滴答定时器的方法。


      SysTick定时器(系统滴答定时器)是一个倒计时定时器,被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。SysTick定时器能产生中断,CM3为它专门开出一个异常类型,并且在向量表中有它的一席之地。它使操作系统和其它系统软件在CM3器件间的移植变得简单多了,因为在所有CM3产品间对其处理都是相同的。SysTick定时器能产生中断,CM3为它专门开出一个异常类型,并且在向量表中有它的一席之地。它使操作系统和其它系统软件在CM3器件间的移植变得简单多了,因为在所有CM3产品间对其处理都是相同的。该定时器用法也相对简单,主要它由4个寄存器来控制。其用法步骤如下:


1、配置时钟源,选择外部时钟(STCLK)还是内部时钟(FCLK),时钟分频等


2、计算重载值,并赋值给SysTick重装载数值寄存器重载值*系统周期=中断周期


3、开中断


4、使能SysTick定时器


具体编程实现过程如下图:



关键字:stm32  系统滴答定时器 引用地址:stm32中的系统滴答定时器使用

上一篇:STM32定时器定时计算公式
下一篇:关于stm32定时器定时周期计算

推荐阅读最新更新时间:2024-03-16 16:21

半个小时搞定——stm32 之 DAC
DAC 可谓是 stm32 继按键最简单的一个 寄存器 配置吧,花了半个小时搞定! DAC 主要特征 ● 2 个 DAC 转换器:每个转换器对应 1 个输出通道 ● 8 位或者 12 位单调输出 ● 12 位模式下数据左对齐或者右对齐 ● 同步更新功能 ● 噪声波形生成 ● 三角波形生成 ● 双 DAC 通道同时或者分别转换 ● 每个通道都有 DMA 功能 ● 外部触发转换 看了这些东西,貌似很激动的样子,我们下面就开始配置 DAC 外设了 先直接看看寄存器: 位 12 DMAEN1:DAC 通道 1 DMA 使能(DAC channel1 DMA enable 该位由软件设置和清除。 0:关闭 DA
[单片机]
一文了解STM32启动过程
1 概述 说明 每一款芯片的启动文件都值得去研究,因为它可是你的程序跑的最初一段路,不可以不知道。通过了解启动文件,我们可以体会到处理器的架构、指令集、中断向量安排等内容,是非常值得玩味的。 STM32作为一款高端 Cortex-M3系列单片机,有必要了解它的启动文件。打好基础,为以后优化程序,写出高质量的代码最准备。 本文以一个实际测试代码--START_TEST为例进行阐述。 整体过程 STM32整个启动过程是指从上电开始,一直到运行到 main函数之间的这段过程,步骤为(以使用微库为例): ①上电后硬件设置SP、PC ②设置系统时钟 ③软件设置SP ④加载.data、.
[单片机]
一文了解<font color='red'>STM32</font>启动过程
STM32输入捕获实验示例详解
STM32输入捕获实验 寄存器部分讲解(以TIM5_CH1为例) TIMx_CCMR1.ICF 的作用 滤波器的作用就是“采集取样以便于确定准确的电平状态”。我们以ICIF = 0010为例: 实例应用:假设输入信号在最多5个内部时钟周期的时间内抖动,我们须配置滤波器的带宽长于5个时钟周期。因此我们可以(以fDTS频率)连续采样8次,以确认在TI1上一次真实的边沿变换,即在TIMx_CCMR1寄存器中写入IC1F=0011。 TIMx_CCER.CC1P的作用 这个寄存器很重要,它决定了“上升沿/下降沿触发输入捕获 “,而且最重要的是,它是用来配置极性的唯一寄存器,这说明输入极性与输出极性都要经过它进行配置,因此
[单片机]
<font color='red'>STM32</font>输入捕获实验示例详解
STM32+0.91寸oled滚动显示bme680测得的数据
#include bme680.h uint8_t bme680_data ={0}; uint8_t aqi_accuracy; int16_t temperature,altitude; uint16_t humidity,aqi; uint32_t pressure,gas; void Bme680_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1Perip
[单片机]
演示STM32中PWM的配置与应用
打开CubeMX软件,新建工程。 输入芯片型号。 根据封装选择列表中的芯片,我的是LQFP144封装,双击此项。 在Project Manager选项卡中,配置工程名、编译工具,如下图所示。 在Pinout&Configuration选项卡中,配置System的Debug为Serial Wire,否则可能无法下载程序。 RCC选择高速外部时钟。 根据电路原理图,可知LED7对应PC6管脚。 本实验要让PC6管脚输出PWM波形,实现LED7呼吸灯效果。 找到PC6,选中TIM3_CH1。 找到TIM3,通道1配置PWM输出。 查找STM32参考手册时钟图,找到TIM3时钟的位置在APB1上。
[单片机]
演示<font color='red'>STM32</font>中PWM的配置与应用
STM32的ADC用法你都知道吗?
AD采样在电路中是一种比较常见的功能,可以用于电池电压检测、传感器值读取、信号采集等。STM32的ADC,由于引入了DMA,以及多种触发源,功能自然强大,用法也多种多样。这里简单说下单通道情况下,AD采样的几种用法。 1、AD单次转换+软件启动 最基本的用法,通过程序启动AD,AD采集一次,我们就去读一次。这种情况,建议开启AD转换完成中断,在中断中读出AD值并做处理。 这种方式的优点是配置简单,缺点么,太T么简单~ 初始化的时候,启动一次。然后在主循环里,每隔一秒启动一次。 在中断回调函数里,进行相关处理: 电脑输出如下: 2、连续转换+软件启动 在方法1的基础上做调整,从单次转换,变成连续转换。也就是说,只需要
[单片机]
<font color='red'>STM32</font>的ADC用法你都知道吗?
STM32 ESP8266和Java服务器透传模式下的双向通信
标注:注意大家一般的得到的STM32程序中的延迟函数delay_ms()中的入口参数值是有限制的,他最大值只能是1864,我之前不知道,程序中一直错误地使用它,所以导致延时不准确。 //延时nms //注意nms的范围 //SysTick- LOAD为24位寄存器,所以,最大延时为: //nms =0xffffff*8*1000/SYSCLK //SYSCLK单位为Hz,nms单位为ms //对72M条件下,nms =1864 void delay_ms(u16 nms) { u32 temp; SysTick- LOAD=(u32)nms*fac_ms; //时间加载(SysTick- LOAD为24bi
[单片机]
<font color='red'>STM32</font> ESP8266和Java服务器透传模式下的双向通信
使用VSCode搭建STM32开发环境
首先附上一张VS Code图一直都喜欢这种,黑色主题感觉高大上。 一、需要的软件和工具。 下载最新版VS Code: 安装好插件,具有良好的代码补全与调试功能。 “VS Code下载地址:https://code.visualstudio.com/” 下载 LLVM:用于代码补全,其实可以理解为 Clang。因为VS Code 中“C/C++”插件的自动补全功能不太好用。STM32中好多库函数都补全不出来。记得按照好之后,将路径添加到环境变量里。 “LLVM下载地址:http://releases.llvm.org/download.html” 下载安装 Git for Windows: 提供Git支持和MINGW64指令终端
[单片机]
使用VSCode搭建<font color='red'>STM32</font>开发环境
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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