STM32----摸石头过河系列(七)
今天练习了32中的SysTick定时器,通常叫做滴答定时器。定时器的作用,用过51的想必都知道。定时器主要用来处理一些周期性的,时间间隔固定的事件。同时定时器也可以用来得到一个事件所耗费的时间。下面来看一下滴答定时器的配置过程:
- 初始化定时器,配置定时进入中断的时间间隔
- 如果配置失败,则死循环等待
- 配置成功后,先关闭定时器
- 在延时函数中使用全局变量记录进入了中断几次,并使能定时器
- 书写中断所要执行的代码
下面来看看代码(systick.c):
#include"systick.h"u32 TimeTemp;void SysTick_Init(void)
{if(SysTick_Config(SystemCoreClock/1000)){while(1);}SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
}void Delay_ms(u32 nTime)
{TimeTemp = nTime;SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;while(TimeTemp != 0);
}void TimeTemp_Decrement()
{if(TimeTemp != 0){TimeTemp--;}
}
SysTick_Config(SystemCoreClock/1000)
初始化定时器进入中断的时间间隔。SystemCoreClock/1000表示1ms进入中断;SystemCoreClock/100000表示1us进入中断。如果配置成功,跳过if判断,执行SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;来关闭定时器。
void Delay_ms(u32 nTime)
{TimeTemp = nTime;SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;while(TimeTemp != 0);
}
该函数提供被使用者所调用的延时函数,传入的参数为延时的时长,单位是毫秒。然后执行SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;用来使能定时器,使定时器开始工作。最后等待设置的时间,已达到延时的目的。
void TimeTemp_Decrement()
{if(TimeTemp != 0){TimeTemp--;}
}
该函数为在中断中要执行的函数,主要来计数进入中断几次,直到设置的时间结束。
下面来看一下主函数(main.c):
#include"led.h"
#include"usart.h"
#include"systick.h"int main(void)
{GPIO_LED_Config();USART1_Config();SysTick_Init();while(1){printf("Turn on the Light!\r\n");LED(ON);Delay_us(5000);printf("Turn off the Light!\r\n");LED(OFF);Delay_us(5000);}
}void SysTick_Handler(void)
{TimeTemp_Decrement();
}
这个定时器的相对来说是比较简单的,并且它不是外设,它在32的内核之中。比较容易实现简单的定时任务。
STM32----摸石头过河系列(七)相关推荐
- 58同城如何摸石头过河?
本文转自:http://www.huxiu.com/article/4397/1.html 这家典型"鼠标+水泥".不愿复制Cragslist模式的创业公司,摸爬滚打间的经验教训 ...
- oCPC实践录 | 摸石头过河,oCPC先跑起来再说
oCPC才开始的实践基本上是摸着石头过河,不断测试实验.不过也可以参考已有的oCPC产品设计,oCPC首要需要解决的是转化目标和转化数据. 在解决转化数据之前,可以先看一下申探社:深入互联网广告中的出 ...
- STM32----摸石头过河系列(一)
在学习stm32之前,我较为熟练的掌握了51单片机的开发,可以运用51中的输入.输出,以及定时器.中断等.今天第一天,学习stm32点亮LED灯. 在本次学习中使用的是stm32f103RC系列单片机 ...
- STM32----摸石头过河系列(八)
在STM32中定时器(TIM)是很重要的外设,具有相当多的作用,并且用法多样,内容多.今天来分析一下定时器的理论知识,没有实例. 在STM32中定时可以分为三类:基本定时器.通用定时器.高级定时器. ...
- STM32----摸石头过河系列(六)
今天了解一下ADC,stm32中的模数转换利用的是逐次逼近的方法,这个当时在考研时特别熟,现在又忘了,又去问了一下万能的百度.先是多少了解一下这个转换过程,在32的开发过程中用不到,但毕竟从事这个的, ...
- STM32----摸石头过河系列(四)
今天分析STM32一个相当重要的外设--串口,在我使用的这款单片机中有三个串口分别为USART1,USART2,USART3.其中USART1挂载在总线APB2上,USART2,3挂载在APB1上.这 ...
- 中台,都他妈被你们说糊涂了,文内才是正宗解释,别摸石头过河了,石头早就有了
(1)我们先说说技术架构分层 我们按技术架构通常是这样的: 1.UI交互层:Windows UI.PC Web UI.移动App UI.微信小程序UI.摄像头视觉识别人机界面.语音交互人机界面 2.逻 ...
- STM32----摸石头过河系列(五)
今天总结一下DMA(Direct Memory Access,直接存储器存储),在以往我们从串口读取数据到内存的流程是,cpu通过串口读取导数据,然后CPU再将数据写入固定的内存.这种读取方式占用了大 ...
- STM32----摸石头过河系列(三)
前两次了解了LED的打开和关闭,以及按键的检测和按键作为输入的中断.今天来了解一下SysTick系统定时器.玩过51的想必对定时器一定不会陌生.定时器可以让我们隔着固定的时间的去做一些事情,比如让LE ...
最新文章
- linux传文件到xp,Linux与Windows XP之间使用FTP互传文件
- 二、Asp.Net Core WebAPI——OcelotDemo
- 基于IAR-stm32裸板工程,完美移植RT-Thread Nano系统(附源码)
- 初探Stage3D(一) 3D渲染基础原理
- 处理v-html的潜在XSS风险
- python 安装中的错误解决
- SOFA RPC 详细介绍
- Qt/Embedded开发环境的的搭建(二)
- 关于_beginthreadex、_beginthread和CreateThread
- 字符串-创建//比较
- Rabbit-音乐欣赏
- Stick ------ 剪枝神题
- html鼠标移上去变成箭头,js实现鼠标移动到div上变成箭头
- 人工智能已经沦为刷榜,刷论文的时代了? 新一代人工智能,认知智能已经来临。道翰天琼。
- win10商店打不开_win10自带的照片查看器打不开的修复方法
- python求和函数详解_python的sum求和函数详解
- 阿里云ubuntu源_优麒麟19.04即将发布,华为、阿里云、重大、360四大境像站鼎力支持!...
- AndroidWear 连接手持设备与穿戴设备模拟器到开发环境
- Python生成词云的制作
- SAP ME架构官网文档学习总结