查看: 3878|回复: 6

【望月追忆】带你入门STM32F0之二:点亮你的小灯----SysTick...

[复制链接]
发表于 2012-12-6 17:05:32 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 upc_arm 于 2012-12-6 17:07 编辑

初始化SysTick
使得每隔1ms来一次中断
本函数实现延时 n ms
  1. void SysTick_Delay_nms(uint32_t nms)
  2. {
  3.         if (SysTick_Config(SystemCoreClock / 1000))
  4.         {
  5.                 while(1);
  6.         }
  7.         TimingDelay = nms;
  8.         while(TimingDelay != 0);
  9. }
复制代码
注意中断函数  前面引用
  1. #include "Main.h"
复制代码
  1. void SysTick_Handler(void)
  2. {
  3.         TimingDelay_Decrement();
  4. }
复制代码
其中 TimingDelay_Decrement 实现在main文件中:
  1. void TimingDelay_Decrement(void)
  2. {
  3.   if (TimingDelay != 0x00)
  4.   {
  5.     TimingDelay--;
  6.   }
  7. }
复制代码
把这个函数声明放到main.h头文件中:
  1. #ifndef __MAIN_H
  2. #define __MAIN_H

  3. void TimingDelay_Decrement(void);

  4. #endif /* __MAIN_H */
复制代码
main函数

  1.   LED_Init();
  2.   while (1)
  3.   {
  4.                 GPIO_SetBits(LED_PORT, LED1_PIN | LED2_PIN);
  5.                 SysTick_Delay_nms(1000);
  6.                 GPIO_ResetBits(LED_PORT, LED1_PIN | LED2_PIN);
  7.                 SysTick_Delay_nms(1000);
  8.   }
复制代码
回复

使用道具 举报

发表于 2012-12-6 17:43:23 | 显示全部楼层
简洁有效,希望LZ坚持发文章啊。
回复 支持 反对

使用道具 举报

发表于 2012-12-6 18:23:49 | 显示全部楼层
这个要支持
回复 支持 反对

使用道具 举报

发表于 2012-12-11 14:05:40 | 显示全部楼层
顶一个啊
回复 支持 反对

使用道具 举报

发表于 2012-12-19 10:54:32 | 显示全部楼层
最想提升的就是ARM的编程思路与构架、
回复 支持 反对

使用道具 举报

发表于 2013-1-6 12:20:49 | 显示全部楼层
   支持
        
回复 支持 反对

使用道具 举报

发表于 2013-12-28 12:56:46 | 显示全部楼层
顶一个,哈哈哈
回复 支持 反对

使用道具 举报

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-29 07:23 , Processed in 0.116385 second(s), 12 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.