打印
[STM32F4]

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

[复制链接]
867|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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                                          

使用特权

评论回复
沙发
一只眠羊| | 2024-5-19 15:23 | 只看该作者
可能是因为定时器的配置不正确导致占空比没有变化。请确保定时器的时钟源、分频系数、计数模式等配置正确。

使用特权

评论回复
板凳
在曼谷的春| | 2024-5-19 18:00 | 只看该作者
如果TIM14被配置为PWM输出模式,需要正确设置PWM模式和极性。

使用特权

评论回复
地板
月亮一键变蓝| | 2024-5-19 20:00 | 只看该作者
建议查查PWM模式和极性设置正确,以确保占空比的变化能够正确反映在输出信号上。

使用特权

评论回复
5
她已醉| | 2024-5-19 22:00 | 只看该作者
在修改CCR1寄存器后,需要触发更新事件才能使新的值生效。

使用特权

评论回复
6
春日负喧| | 2024-5-20 02:00 | 只看该作者
一般是在修改CCR1寄存器后调用了更新事件触发函数。

使用特权

评论回复
7
风凉| | 2024-5-20 08:00 | 只看该作者
请检查中断和DMA配置,确保没有干扰到占空比的设置。

使用特权

评论回复
8
捧一束彼岸花| | 2024-5-20 12:00 | 只看该作者
不稳定的电源供应可能会导致定时器工作异常,影响占空比的变化。

使用特权

评论回复
9
未说出口的像你| | 2024-5-20 14:00 | 只看该作者
建议保证电源供应稳定,其实电源也会有影响的

使用特权

评论回复
10
我吃小朋友| | 2024-5-20 19:00 | 只看该作者
我觉得啊,你要是重新配置了,建议重新初始化一下,也许会OK

使用特权

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

本版积分规则

407

主题

1939

帖子

1

粉丝