新闻中心

EEPW首页>嵌入式系统>设计应用> STM32学习笔记——使用SysTick定时器做延时

STM32学习笔记——使用SysTick定时器做延时

作者: 时间:2016-11-28 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201611/322898.htm

例:

选择1/8的AHB时钟作为SysTick时钟源

[cpp]view plaincopy
  1. SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);

3.例程

3.1程序代码

本例程代码在点亮LED灯例程代码上做修改,使用SysTick定时延时,除延时外其他代码不变,与SysTick相关语句给予注释。

[cpp]view plaincopy
  1. #include"stm32f10x.h"
  2. voidDelay(u32nTime);//声明延迟函数
  3. voidGPIO_Configuration(void);
  4. intmain(void)
  5. {
  6. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  7. GPIO_Configuration();
  8. while(SysTick_Config(SystemCoreClock/1000)!=0);//配置SysTick,装入初始值,装载值根据时钟源频率而定,72MHz时钟源则产生1ms中断需要装载值为(72000000/1000)
  9. while(1)
  10. {
  11. GPIO_ResetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_9);
  12. GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_8);
  13. Delay(1000);
  14. GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_8);
  15. GPIO_SetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_9);
  16. Delay(1000);
  17. GPIO_Write(GPIOC,0x0140);
  18. Delay(1000);
  19. GPIO_Write(GPIOC,0x0280);
  20. Delay(1000);
  21. }
  22. }
  23. voidGPIO_Configuration(void)
  24. {
  25. GPIO_InitTypeDefGPIO_InitStructure;
  26. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
  27. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  28. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  29. GPIO_Init(GPIOC,&GPIO_InitStructure);
  30. }
  31. volatileu32TimingDelay;//定义全局变量,其声明在stm32f10x_it.c中
  32. voidDelay(u32nTime)//定义延迟函数
  33. {
  34. TimingDelay=nTime;//将延迟数赋予全局变量
  35. while(TimingDelay!=0);
  36. }

其中,在stm32f10x_it.c中:

[cpp]view plaincopy
  1. externvolatileu32TimingDelay;//声明全局变量
  2. voidSysTick_Handler(void)
  3. {
  4. TimingDelay--;
  5. }

3.2结果

编译烧入开发板后,LED等以1s的时间精确交替闪烁。

参考文献:

[1]JosephYiu,宋岩译.《Cortex-M3权威指南》[EB/OL].http://ishare.iask.sina.com.cn/f/11378333.html?retcode=0,2010-11-05/2012-09-09.

[2]ST.《STM32固件库2.0.3与3.0版本的比较中文版》[EB/OL].http://ishare.iask.sina.com.cn/f/18297257.html?from=like,2011-08-22/2012-09-09.

[3]Xxbing8.STM32_SysTick[EB/OL].http://hi.baidu.com/xxbing8/item/c99ea4f53f996ad042c36ab82012-06-14/2012-09-09.



上一页 1 2 3 下一页

关键词:STM32SysTick定时

评论


相关推荐

技术专区

关闭