目录:
概述:本篇博客针对sysclk内核定时器(时钟滴答定时器)的常见用法进行总结,分别实现sysclk的定时、延时、计时功能,全部为代码,寄存器描述需参考《Cortex-M3 权威指南》。
平台:stm32f103奋斗开发板 开发环境:MKD5
1:sysclk的定时功能
2:sysclk的us/ms级延时功能
3:sysclk计时功能
1:sysclk的定时功能:LED1、LED2、LED3分别间隔不同的时间闪烁
main.c函数
/*
*FUNC:使用内核中的滴答定时器实现定时功能
*MCU:stm32f103
*DATE:2016/08/30
*/
#include "Sys_Driver.h"
#include "Led_Driver.h"
#include "RCC_Driver.h"
/*主函数*/
int main()
{
SysTick_Init(INT_10MS,SysTick_CLKSource_HCLK_Div8); /*内核滴答定时器配置*/
RCC_PeriphClock_Config(); /*外设时钟配置*/
Led_Init(); /*LED灯初始化*/
while(1)
{
/*任务1:led1每隔1s闪烁*/
if(led1_flsh_times >= 100)
{
led1_flsh_times = 0;
led1_on_off = !led1_on_off;
if(led1_on_off == 1)
{
LED_ON(1);
}
else
{
LED_OFF(1)
}
}
/*任务2:led2每隔2s闪烁*/
if(led2_flsh_times >= 200)
{
led2_flsh_times = 0;
led2_on_off = !led2_on_off;
if(led2_on_off == 1)
{
LED_ON(2);
}
else
{
LED_OFF(2)
}
}