打印
[STM32F4]

修改stm32f407 tim14的ccr1,但是占空比不变?

[复制链接]
107|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2024-4-15 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过debug查看相应的寄存器已经改变,但是示波器看波形是满占空比,下面是初始化代码

void TIM14_PWM_Init(unsigned int arr,unsigned int psc)

{

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;


RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);          //TIM14时钟使能  

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);         //使能PORTA时钟


GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_TIM14); //GPIOA7复用为定时器14


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;           //GPIOA7

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉

GPIO_Init(GPIOA,&GPIO_InitStructure);              //初始化PA7

  

TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频

TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式

TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值

TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;


TIM_TimeBaseInit(TIM14,&TIM_TimeBaseStructure);//初始化定时器14


//初始化TIM14 Channel1 PWM模式         

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低

TIM_OC1Init(TIM14, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1



TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器
TIM_ARRPreloadConfig(TIM14,ENABLE);//ARPE使能

TIM_Cmd(TIM14, ENABLE);  //使能TIM14                                          

使用特权

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

本版积分规则

289

主题

1247

帖子

1

粉丝