STM32利用SysTick定时器精确延时1ms

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "stm32f10x.h"
#define SYSTICK_TIMER 72000000/1000
void GPIO_Configuration(void);
void Delay(__IO uint32_t nTime);
static __IO uint32_t TimingDelay;
int main()
{
GPIO_Configuration();
SysTick_Config(SYSTICK_TIMER);
while(1)
{
GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_SET);
GPIO_WriteBit(GPIOB,GPIO_Pin_9,Bit_SET);
Delay(1000);
GPIO_WriteBit(GPIOB,GPIO_Pin_9,Bit_RESET);
Delay(1000);
}

}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}

void Delay(__IO uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0);
}
void SysTick_Handler_hook(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}

相关文档
最新文档