首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

stm32 TIM定时器[操作寄存器+库函数](3)

stm32 TIM定时器[操作寄存器+库函数](3)

User/stm32f10x_it.c
01#include "stm32f10x_it.h"

02#include "system.h"

03

04#define LED0 PAout(4)

05#define LED1 PAout(5)

06#define LED2 PAout(6)

07#define LED3 PAout(7)

08  

09void TIM2_IRQHandler(void)

10{

11    if(TIM2->SR&0x02)   //捕获比较中断1触发

12    {

13        LED0 = !LED0;   

14            

15        TIM2 ->CCR1 = TIM2 -> CNT + 40000;     //更新捕获/比较1的值

16

17        TIM2->SR &= 0xFD;  //清除捕获比较中断

18    }

19

20    if(TIM2->SR&0x04)   //捕获比较中断2触发

21    {

22        LED1 = !LED1;      

23        TIM2 ->CCR2 = TIM2 -> CNT + 20000;

24

25        TIM2->SR &= 0xFB;  //清除捕获比较中断

26    }

27

28    if(TIM2->SR&0x08)   //捕获比较中断3触发

29    {

30        LED2 = !LED2;   

31

32        TIM2 ->CCR3 = TIM2 -> CNT + 10000;

33        TIM2->SR &= 0xF7;  //清除捕获比较中断

34     

35    }

36

37    if(TIM2->SR&0x10)   //捕获比较中断4触发

38    {

39        LED3 = !LED3;

40

41        TIM2 ->CCR4 = TIM2 -> CNT + 5000;

42        TIM2->SR &= 0x0F;  //清除捕获比较中断

43     

44    }

45     

46    TIM2->SR &= ~(1<<0);    //清除中断

47

48}
继承事业,薪火相传
返回列表