OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3121|回复: 5

三个定时器的三种不同波形产生

[复制链接]

6

主题

16

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-3-24
在线时间
8 小时
发表于 2016-4-28 09:21:41 | 显示全部楼层 |阅读模式
5金钱
现在想通过TIM2、TIM3、TIM4产生三路不同频率的PWM波形,其中TIM3的输出路是CH3用了完全映射到PC8上   TIM3 和TIM4的波形都可以输出但是TIM2的波形输出不了  新手求助 ,求大神们指点一下[mw_shl_code=c,true]void TIM2_PWM_Init(u16 arr,u16 psc)
{

        RCC->APB1ENR|=7<<0;        //TIM2ê±&#214;óê1&#196;ü  
        RCC->APB2ENR|=7<<2; //ê1&#196;üPORTBê±&#214;ó       
  GPIOB->CRH&=0XFFFFFF0F;//PB9&#199;&#229;á&#227;       
        GPIOB->CRH|=0X000000B0;// ·t&#184;′ó&#195;ê&#228;3&#246;&#196;£ê&#189; 50Mhz
  
        TIM2->ARR=arr;          //éè&#182;¨&#188;&#198;êy&#198;÷×&#212;&#182;ˉ&#214;&#216;×°&#214;μ
        TIM2->PSC=psc;          //&#212;¤·&#214;&#198;μ&#198;÷éè&#214;&#195;

       
        TIM2->CCMR2|=7<<4;          //CH3 PWM2&#196;£ê&#189;                 
        TIM2->CCMR2|=1<<3;             //CH                          3&#212;¤×°&#212;&#216;ê1&#196;ü          
        TIM2->CCER|=1<<8;           //OC3 ê&#228;3&#246;ê1&#196;ü
       
        TIM2->CCR3=50;
        TIM2->CR1|=0x81;    //ê1&#196;ü&#182;¨ê±&#198;÷2
                                         
}

void TIM3_PWM_Init(u16 arr,u16 psc)
{                                                          
        RCC->APB1ENR|=7<<0;         //TIM3ê±&#214;óê1&#196;ü
        RCC->APB2ENR|=1<<2;            //ê1&#196;üPORTAê±&#214;ó            
        RCC->APB2ENR|=1<<3;            //ê1&#196;üPORTBê±&#214;ó       
        RCC->APB2ENR|=1<<4;       //ê1&#196;üPORTCê±&#214;ó       
       
        GPIOC->CRL&=0X0FFFFFFF;//PC7&#199;&#229;á&#227;       
        GPIOC->CRL|=0XB0000000;// ê&#228;3&#246;&#196;£ê&#189; 50Mhz
        GPIOC->CRH&=0XFFFFFFF0;//PC8&#199;&#229;á&#227;       
        GPIOC->CRH|=0X0000000B;// &#184;′&#206;&#187;1|&#196;üê&#228;3&#246;
         

  RCC->APB2ENR|=1<<0;     //  &#184;¨&#214;ú1|&#196;üIOê±&#214;óê1&#196;ü
  AFIO->MAPR&=0XFFFFF3FF; //
  AFIO->MAPR|=3<<10;             //TIM3íêè&#171;&#214;&#216;ó3é&#228;ch3/PC8
          

        TIM3->ARR=arr;                        //éè&#182;¨&#188;&#198;êy&#198;÷×&#212;&#182;ˉ&#214;&#216;×°&#214;μ
        TIM3->PSC=psc;                        //&#212;¤·&#214;&#198;μ&#198;÷2&#187;·&#214;&#198;μ

  TIM3->CCMR1|=7<<12;          //CH2 PWM2&#196;£ê&#189;                 
        TIM3->CCMR1|=1<<11;         //CH2&#212;¤×°&#212;&#216;ê1&#196;ü          
        TIM3->CCER|=1<<4;           //OC2 ê&#228;3&#246;ê1&#196;ü
           
        TIM3->CCMR2|=7<<4;          //CH3 PWM2&#196;£ê&#189;                 
        TIM3->CCMR2|=1<<3;             //CH3&#212;¤×°&#212;&#216;ê1&#196;ü          
        TIM3->CCER|=1<<8;           //OC3 ê&#228;3&#246;ê1&#196;ü
   
        TIM3->CCR2=514;
               
        TIM3->CCR3=1028;               //&#214;&#216;×°&#214;μ

        TIM3->CR1|=0x81;            //ê1&#196;ü&#182;¨ê±&#198;÷3

}         

void TIM4_PWM_Init(u16 arr,u16 psc)
{

        RCC->APB1ENR|=7<<0;        //TIM4ê±&#214;óê1&#196;ü  
        RCC->APB2ENR|=1<<3; //ê1&#196;üPORTBê±&#214;ó       
  GPIOB->CRH&=0XFFFFFFF0;//PB8&#199;&#229;á&#227;       
        GPIOB->CRH|=0X0000000B;// ê&#228;3&#246;&#196;£ê&#189; 50Mhz
  
        TIM4->ARR=arr;          //éè&#182;¨&#188;&#198;êy&#198;÷×&#212;&#182;ˉ&#214;&#216;×°&#214;μ
        TIM4->PSC=psc;          //&#212;¤·&#214;&#198;μ&#198;÷éè&#214;&#195;

       
        TIM4->CCMR2|=7<<4;          //CH3 PWM2&#196;£ê&#189;                 
        TIM4->CCMR2|=1<<3;             //CH3&#212;¤×°&#212;&#216;ê1&#196;ü          
        TIM4->CCER|=1<<8;           //OC3 ê&#228;3&#246;ê1&#196;ü
       
        TIM4->CCR3=50;
        TIM4->CR1|=0x81;    //ê1&#196;ü&#182;¨ê±&#198;÷4
                                                   
}[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2016-4-28 10:04:22 | 显示全部楼层
回复

使用道具 举报

6

主题

16

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-3-24
在线时间
8 小时
 楼主| 发表于 2016-4-28 10:51:52 | 显示全部楼层

谢谢!表示真的很疑惑 写法应该没有错,但是就是出不来
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-1 12:02:32 | 显示全部楼层
单个调试出来先
回复

使用道具 举报

6

主题

16

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-3-24
在线时间
8 小时
 楼主| 发表于 2016-5-2 09:59:29 | 显示全部楼层

[mw_shl_code=c,true]void TIM1_PWM_Init(u16 arr,u16 psc)
{                                                          
        //′&#203;2&#191;·&#214;Dèê&#214;&#182;ˉDT&#184;&#196;IO&#191;úéè&#214;&#195;
        RCC->APB2ENR|=1<<11;         //TIM1ê±&#214;óê1&#196;ü
        RCC->APB2ENR|=1<<2;         //GPIOAê±&#214;óê1&#196;ü
        RCC->APB2ENR|=1<<3;         //GPIOBê±&#214;óê1&#196;ü
       
        GPIOA->CRH&=0XFFFFFF00;        //PA8&#199;&#229;3y&#214;&#174;&#199;°μ&#196;éè&#214;&#195;
        GPIOA->CRH|=0X000000BB;        //&#184;′ó&#195;1|&#196;üê&#228;3&#246;
        GPIOA->ODR|=3<<8;
       
        GPIOA->CRH&=0XFF00FFFF;        //PA13&#199;&#229;3y&#214;&#174;&#199;°μ&#196;éè&#214;&#195;
        GPIOA->CRH|=0X00BB0000;        //&#184;′ó&#195;1|&#196;üê&#228;3&#246;
        GPIOA->ODR|=3<<13;

       
        TIM1->ARR=arr;                        //éè&#182;¨&#188;&#198;êy&#198;÷×&#212;&#182;ˉ&#214;&#216;×°&#214;μ
        TIM1->PSC=psc;                        //&#212;¤·&#214;&#198;μ&#198;÷éè&#214;&#195;
  
        TIM1->CCR1=200;
       
        TIM1->BDTR|=0xCD;

       
        TIM1->CCER|=1<<2;           //CH1&#187;¥21ê1&#196;üê&#228;3&#246;         
        TIM1->CCMR1|=6<<4;          //CH1 PWM2&#196;£ê&#189;                 
        TIM1->CCMR1|=1<<3;                 //CH1&#212;¤×°&#212;&#216;ê1&#196;ü       
        TIM1->CCER|=1<<0;
        TIM1->CR1|=1<<7;           //ê1&#196;üARR×&#212;&#182;ˉ&#214;&#216;×°è&#235;&#187;o′&#230;&#198;÷
        TIM1->BDTR|=1<<15; //       
        TIM1->CR1|=0x01;            //ê1&#196;ü&#182;¨ê±&#198;÷1                                                                                   
}  [/mw_shl_code]
原子哥 请问 这个tim1互补输出有问题吗  一样也输出不了波形啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-4 22:49:29 | 显示全部楼层
hcy33fond 发表于 2016-5-2 09:59
[mw_shl_code=c,true]void TIM1_PWM_Init(u16 arr,u16 psc)
{                                                          
        //′&#203;2&#191;·&#214;Dè ...

我没试过,得你自己慢慢调试哦
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 17:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表