OpenEdv-开源电子网

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

通过定时器3来控制4路PWM波输出,为什么只有两路输出,另外两路始终没有输出

[复制链接]

10

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-4
在线时间
8 小时
发表于 2016-4-8 20:18:24 | 显示全部楼层 |阅读模式
1金钱
通过定时器3来控制4路PWM波输出,为什么只有两路输出,另外两路PB0和PB1总是没有输出,PA6和PA7是有输出的,具体程序如下:void TIM3_PWM_Init(u16 arr,u16 psc)
{  

        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
       

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);       
        //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  
       
//        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);  


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       



        TIM_TimeBaseStructure.TIM_Period = arr;
        TIM_TimeBaseStructure.TIM_Prescaler =psc;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
       

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
        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_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OC1Init(TIM3, &TIM_OCInitStructure);  

        TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);


        TIM_Cmd(TIM3, ENABLE);  //ê1ÄüTIM3
       

}


int main(void)
{               
        u16 led0pwmval=0;
        u8 dir=1;       
        delay_init();            
        NVIC_Configuration();          
        uart_init(9600);       
        LED_Init();                            
        TIM3_PWM_Init(899,0);       
           while(1)
        {
                delay_ms(10);         
                                                                                 
                  TIM_SetCompare2(TIM3,190);       
                       TIM_SetCompare1(TIM3,790);       
                  TIM_SetCompare3(TIM3,190);       
                  TIM_SetCompare4(TIM3,190);       
                          
        }         
}


最佳答案

查看完整内容[请看2#楼]

只开启了OC1和OC2,当然只有这两路了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-4-8 20:18:25 | 显示全部楼层
只开启了OC1和OC2,当然只有这两路了
回复

使用道具 举报

9

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-2-9
在线时间
51 小时
发表于 2016-4-8 20:36:33 来自手机 | 显示全部楼层
oc3 oc4配置程序呢
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2015-8-1
在线时间
1 小时
发表于 2016-4-8 22:50:01 | 显示全部楼层
哈哈!看来忘记两通道的开启
回复

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-4-10 08:26:44 | 显示全部楼层
能学习下程序吗
回复

使用道具 举报

10

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-4
在线时间
8 小时
 楼主| 发表于 2016-4-11 10:06:30 | 显示全部楼层
八度空间 发表于 2016-4-8 20:18
只开启了OC1和OC2,当然只有这两路了

谢谢您  问题已解决
回复

使用道具 举报

10

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-4
在线时间
8 小时
 楼主| 发表于 2016-4-11 10:07:08 | 显示全部楼层
chijt 发表于 2016-4-8 20:36
oc3 oc4配置程序呢

嗯呢 是的   oc3 oc4配置程序没有写上
回复

使用道具 举报

10

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-4
在线时间
8 小时
 楼主| 发表于 2016-4-11 10:07:31 | 显示全部楼层
fli1_12 发表于 2016-4-8 22:50
哈哈!看来忘记两通道的开启

是的呢  嘻嘻
回复

使用道具 举报

10

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-4
在线时间
8 小时
 楼主| 发表于 2016-4-11 10:07:49 | 显示全部楼层

当然可以啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 22:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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