免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1304 | 回复: 0
打印 上一主题 下一主题

赏析之 M3定时器 TIM3计数中断led闪烁 (13) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:41 |只看该作者 |倒序浏览
工程代码: 6_tim3计数中断led闪烁.rar  


  1. #ifndef __TIM3_H
  2. #define __TIM3_H

  3. #include "stm32f10x_nvic.h"
  4. #include "stm32f10x_tim.h"

  5. void TIM3_Configuration(void); //初始化 TIM3
  6. void TIM3_NVIC_Configuration(void); //中断优先级配置

  7. #endif

  1. #include "tim3.h"
  2. /*
  3. * rcc时钟配置: SYSCLK = 16MHZ
  4. * AHB = 16MHZ
  5. *              APB1 = 8 MHZ // TIM2 TIM3 TIM4
  6. *                 APB2 = 16 MHZ //GPIO A B C D
  7. */
  8. void TIM3_Configuration(void)
  9. {
  10.     TIM_TimeBaseInitTypeDef      TIM_TimeBaseStructure;
  11.     
  12.     TIM_TimeBaseStructure.TIM_Prescaler = 1; //APB1时钟 2预分频 8MHZ/2 = 4MHZ
  13.                                             //1秒时间 4MHZ 的脉冲
  14.     TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  15.     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数模式
  16.     TIM_TimeBaseStructure.TIM_Period = 4000; //自动装载 从1~4000计数,刚好1ms时间
  17.     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
  18.     
  19.     TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
  20.     TIM_Cmd(TIM3, ENABLE);
  21.     //需要使能TIM3时钟,我们已经在RCC头文件中 使能了
  22.     //RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);    //定时器3提供时钟
  23. }


  24. /**********************************************************************
  25. * 名 称:NVIC_Configuration()
  26. * 功 能:中断优先级设置
  27. * 入口参数:
  28. * 出口参数:
  29. -----------------------------------------------------------------------
  30. * 说明:设置Tim3优先级
  31. ***********************************************************************/
  32. void TIM3_NVIC_Configuration(void)
  33. {
  34.     NVIC_InitTypeDef NVIC_InitStructure;
  35.     
  36. #ifdef VECT_TAB_RAM
  37.     /* Set the Vector Table base location at 0x20000000 */
  38.     NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
  39. #else /* VECT_TAB_FLASH */
  40.     /* Set the Vector Table base location at 0x08000000 */
  41.     NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
  42. #endif

  43.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//抢占式优先级别, 无抢占优先级
  44.     
  45.     /* Enable the TIM3 Interrupt 使能TIM3中断*/
  46.     NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;
  47.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  48.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  49.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  50.     NVIC_Init(&NVIC_InitStructure);
  51.  
  52. }




























您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP