注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小哲

从今以后,你会是所有幸福的理由!

 
 
 

日志

 
 

STM32 TIM(一)  

2011-10-20 20:42:42|  分类: ARM7-STM32 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include "time.h" 
/*======================================================================= 
 时钟设置:72M 
     使能TIM3和GPIOA 
 ========================================================================*/ 
void RCC_Configuration() 

    SystemInit();//系统时钟设置位72MHz 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOA,GPIOB 
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3 

 
 
 
/*====================================================================== 
GPIO端口设置: 
    PORTA.7端口设置为复用推挽输出 
=======================================================================*/ 
void GPIO_Configuration() 

    GPIO_InitTypeDef GPIO_InitStructure;                           //定义一个结构体 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                      //设定管脚 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;              //50MHz翻转速度 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                //设置模式,复用推挽输出,这个很重要 
    GPIO_Init(GPIOA, &GPIO_InitStructure);                         //初始化这些设置 

 
 
 
/*======================================================================= 
 NVIC设置: 
    中断优先级为最高 
    定时器3 
=======================================================================*/ 
void NVIC_Configuration() 

    NVIC_InitTypeDef NVIC_InitStructure;                           //定义结构体 
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                //采用分组2方式 
    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;                //定时器3 
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;      //0抢断优先级 
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;             //0从优先级 
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                //使能该通道 
    NVIC_Init(&NVIC_InitStructure);                                //初始化设置 

/*======================================================================== 
  TIM模块设置 
 
  ========================================================================*/ 
void TIM_Configuration() 

    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;                  //定义两个结构体,一个基本机构,一个比较输出结构 
    TIM_OCInitTypeDef TIM_OCInitStructure; 
 
    TIM_TimeBaseStructure.TIM_Period = 0xffff;                      //必须是0xffff 
    TIM_TimeBaseStructure.TIM_Prescaler = 72 - 1;                   //时钟为72/72=1MHz 
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;                    //0个采样分频 
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;     //向上计数模式 
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);                 //初始化设置 
 
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;             //管脚输出模式:翻转模式 
    TIM_OCInitStructure.TIM_Pulse = 2000;                           //翻转周期2000个脉冲 
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   //使能这个通道 
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;       //输出为正逻辑 
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);                        //写入配置 
    //TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);              //使能预装载寄存器 
    //TIM_ARRPreloadConfig(TIM3,ENABLE); 
    TIM_ClearFlag(TIM3, TIM_FLAG_Update);                           //清除中断 
 
    //TIM_PrescalerConfig(TIM3, 0xEA5F, TIM_PSCReloadMode_Immediate);   //设置预分频数 
 
    TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);                      //TIM中断源设置,开启相应通道的捕获比较中断 
    TIM_Cmd(TIM3, ENABLE);                                          //开启TIM3 
    TIM_CtrlPWMOutputs(TIM3, ENABLE);                               //通道输出使能 

 
 
 
 
 
 
分析: 
 
TIM_IT的参数有: 
 
TIM_IT_Update  TIM中断源 
 
TIM_IT_CC1  TIM捕获 / 比较1中断源 
 
TIM_IT_CC2  TIM捕获 / 比较2中断源 
 
TIM_IT_CC3  TIM捕获 / 比较3中断源 
 
TIM_IT_CC4 TIM捕获 / 比较4中断源 
 
 
  评论这张
 
阅读(1196)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017