OpenEdv-开源电子网

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

F407 TIM8 PWM没输出

[复制链接]

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2016-11-12
在线时间
26 小时
发表于 2018-8-5 16:21:01 | 显示全部楼层 |阅读模式
3金钱
       
搞了半天了,没发现哪里有问题,帮忙看看这是怎么回事


        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);        //使能PORTA PORTB时钟
        RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM8,ENABLE);          //TIM2和TIM4时钟使能   
       
        TIM_DeInit(TIM8);        //重新初始化TIM8为默认状态
       
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;        //PBC 6 7 8 9
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;                                        //复用功能
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;                                //速度100MHz
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;                                      //推挽复用输出
//        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;                                        //上拉
        GPIO_Init(GPIOC,&GPIO_InitStructure);                                              //初始化PC 6 7 8 9
               
        TIM_TimeBaseStructure.TIM_Period=arr;                        //自动重装载值
        TIM_TimeBaseStructure.TIM_Prescaler=psc;        //定时器分频
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;        //向上计数模式       
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;                                         //时钟分频
//        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;                                //重复计数次数
       
        TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure);                                //初始化TIM4

       
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;                                //PWM模式1
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;        //使能输出
        TIM_OCInitStructure.TIM_Pulse=4200;                                                        //CCRx
        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;                //高电平有效
//        TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;        //空闲高电平       
       
        TIM_OC1Init(TIM8, &TIM_OCInitStructure);          //初始化TIM8 CH1输出比较
        TIM_OC2Init(TIM8, &TIM_OCInitStructure);          //初始化TIM8 CH2输出比较
        TIM_OC3Init(TIM8, &TIM_OCInitStructure);          //初始化TIM8 CH3输出比较
        TIM_OC4Init(TIM8, &TIM_OCInitStructure);          //初始化TIM8 CH4输出比较
       
        TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR1上的预装载寄存器
        TIM_OC2PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR2上的预装载寄存器
        TIM_OC3PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR3上的预装载寄存器
        TIM_OC4PreloadConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR4上的预装载寄存器

        TIM_ARRPreloadConfig(TIM8,ENABLE);        //TIM8        ARPE使能
       
        TIM_CtrlPWMOutputs(TIM8, ENABLE);
       
        TIM_Cmd(TIM8, ENABLE);  //使能TIM8

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-8-6 01:21:44 | 显示全部楼层
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2020-5-13
在线时间
9 小时
发表于 2020-8-18 09:53:50 | 显示全部楼层
遇到了同样的问题。楼主解决了吗?
回复

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2016-11-12
在线时间
26 小时
 楼主| 发表于 2020-11-25 09:04:15 | 显示全部楼层
1212123 发表于 2020-8-18 09:53
遇到了同样的问题。楼主解决了吗?

是能时钟的问题,当时没设置对
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-14 13:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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