Systick时钟定时

时间:2023-01-23 23:57:20

主函数

 /* Note:Your choice is C IDE */
#include "stdio.h"
#include "led.h"
void main()
{
SystemInit();//初始化系统,使得系统频率为72兆
systick_init();//配置Systick,使得1ms产生中断
led_gpio_init();
while()
{ GPIO_Setbits(GPIO,GPIO_Pin_15);
delay_ms();//延时
GPIO_ResetBits(GPIO,GPIO_Pin_15);
delay_ms();
}
}

time函数

 /* Note:Your choice is C IDE */
#include "stdio.h"
/*
*第一步:配置系统时钟 void SystemInit(void)
*配置Systick core_cm3.h
*写SysTick中断处理函数
*编写delay延迟函数
*/ _IO uint32_t TimeDelay; void systick_init(void)
{
//配置Systick重载值,系统时钟为72MHz
//设置72000,中断时间;72000*(1/72000000)=1ms if(SysTick_confing()==)
{
while();
}
/*
while(Systick_confing(72000)==1)
*/
}
//中断函数
void TimingDelay_Decrement(void)
{
if(TimingDelay!=0x00)
{
TimingDelay--;
}
} void sysTick_Handle()
{ } //第四步
void delay_ms(_IO uint32_t nTime)
{
TimingDelay=ntime;//时钟滴答
while(TimingDelay!=);
}
 #ifndef _TIMER_H_
#define _TIMER_H_
#include "stm32f10x.h" extern _IO uint32_t TimingDelay;//生命外面的变量
void systick_init(void);
void delay_ms(_IO uint32_t nTime)
#endif