STM32F407之基本定时器TIM6&TIM7

     基本定时器TIM6和TIM7包括一个由可编程分频器驱动的16位自动重载计数器。它可以用作普通的定时器,也可以用来驱动DAC。这两个定时器是完全独立的,不共享任何资源。更多时候是与DAC平配合使用。

 

 

 

 

作为定时器的配置步骤:

1.      设置中断优先级分组(如果之前没有设置),这个最好一个程序里只在开头设置一次。

2.     使能相关时钟。

3.     设置分频。

4.     清空计数器的值。

5.     设置自动重装寄存器的值。

6.     是否允许中断。

7.     如果允许中断,设置中断优先级,使能中断。

8.     使能计数器。

 

 

 

程序:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /************************************  
  2.     标题:定时器TIM7的定时练习  
  3.     软件平台:IAR for ARM6.21  
  4.     硬件平台:stm32f4-discovery  
  5.     主频:168M  
  6.       
  7.     author:小船  
  8.     data:2012-02-06  
  9. *************************************/  
  10.   
  11. #include <stm32f4xx.h>   
  12. #include "MyDebugger.h"  
  13.   
  14. void main ()  
  15. {     
  16.   
  17.   SCB->AIRCR = 0x05FA0000 | 0x400;  //中断优先级分组 抢占:响应=3:1  
  18.     
  19.   RCC->APB1ENR |= (1<<5); //打开TIM7时钟  
  20.   TIM7->PSC = 8399; //对时钟84M进行8400分频,使得计数频率为10k  
  21.   TIM7->ARR = 10000;  //定时一秒  
  22.   TIM7->CNT = 0;  //清空计数器  
  23.   TIM7->CR1 |= (1<<7); //自动重装载预装载使能  
  24.   TIM7->DIER |= 1; //使能中断  
  25.   NVIC->IP[55] = 0x80;  
  26.   NVIC->ISER[1] |= (1<<(55-32));  
  27.   TIM7->CR1 |= 1; //开始计时  
  28.   MyDebugger_Init();  
  29.   while(1)  
  30.   {  
  31.   };  
  32. }  
  33.   
  34. void TIM7_IRQHandler(void)  
  35. {  
  36.   if(TIM7->SR)  
  37.   {  
  38.     MyDebugger_LEDs(blue, turn);  
  39.     TIM7->SR &= ~(0x0001);   
  40.   }  
  41. }  

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值