打印
[STM32F1]

【转】用STM32的一个定时器实现输出两路频率1x、2x的方波

[复制链接]
1180|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一代掌门|  楼主 | 2016-12-24 12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/******************************************************************************************
* 函数名称    : TIM3_Configuration
* 功能描述    : TIM3初始化函数
* 参数        :  无
* 返回值      :  无
* 全局变量    :  无
* 全局静态变量:  无
* 局部静态变量:  无
******************************************************************************************/
void TIM3_Configuration( )
{  
  GPIO_InitTypeDef          GPIO_InitStructure;
  TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;   
  TIM_OCInitTypeDef      TIM_OCInitStructure;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);   //打开APB2外设
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);  //开时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;    //PA6 PA7  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   //要改为 AF_PP
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  TIM_DeInit(TIM3);                           //将TIM3寄存器设为缺省值
  TIM_TimeBaseStructure.TIM_Period=72-1;   //ARR的值,计数周期     
  TIM_TimeBaseStructure.TIM_Prescaler=36-1;      //分频  CK_INT=2MHz 36分频
  TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式  
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);    //初始化定时器3

  //通道1
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle  ;
   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //输出使能
  TIM_OCInitStructure.TIM_Pulse = 1-1 ;      //待捕获比较寄存器的值  CRR
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;    //高电平有效

  TIM_OC1Init(TIM3, &TIM_OCInitStructure);     //通道初始化
  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);  //预装载使能
  
  //通道2
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1  ;
   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //输出使能
  TIM_OCInitStructure.TIM_Pulse = 36-1 ;      //待捕获比较寄存器的值  CRR
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;    //高电平有效
  TIM_OC2Init(TIM3, &TIM_OCInitStructure);     //通道初始化  
   

  TIM3->CNT = 0;
  TIM_Cmd(TIM3, ENABLE);//打开定时器
      
}



沙发
zhuotuzi| | 2016-12-24 13:09 | 只看该作者
TIM_Cmd(TIM3, ENABLE);//打开定时器
非常不错的

使用特权

评论回复
板凳
yanshanbao| | 2016-12-30 14:21 | 只看该作者
有啥意思?

使用特权

评论回复
地板
zhuotuzi| | 2016-12-30 17:34 | 只看该作者
用的USB数字示波器?

使用特权

评论回复
5
zhuotuzi| | 2016-12-30 17:35 | 只看该作者
多少钱买的,我以前买了个三百多。
如果设置50%应该就是方波了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

191

帖子

4

粉丝