你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2984|回复: 1

通用定时器PWM输出不能自动修改周期问题

[复制链接]

5

主题

31

回帖

0

蝴蝶豆

新手上路

最后登录
2019-8-30
发表于 2011-6-28 13:14:30 | 显示全部楼层 |阅读模式
用TIM4输出的PWM波形不能自动修改周期,仿真看到TIM4_ARR的值已经修改,但是PWM周期仍然是原来初始化时的值,请教是怎么回事?程序如下:
void pwm_tim_configuration (void)
{
 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //在开启时钟里一定要打开TIM2的时钟 
  TIM_TimeBaseStructure.TIM_Period = 200;        //设定的最大计数值7199,最大计数值是0xffff
  TIM_TimeBaseStructure.TIM_Prescaler = 11;     //分频9999
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;     // 时钟分割
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //计数方向向上计数
  TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
 
}

void pwm_configuration (void)
{
 TIM_OCInitTypeDef TIM_OCInitStructure; 
  
 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 75;
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC3Init (TIM4,&TIM_OCInitStructure);
 TIM_OC3PreloadConfig(TIM4,TIM_OCPreload_Enable);
 TIM_ARRPreloadConfig(TIM4,ENABLE);
 TIM_Cmd(TIM4,ENABLE);
}
主程序修改频率程序:
TIM_SetAutoreload(TIM4,50*Rx_Idx);
   TIM_SetCompare3(TIM4,50);
程序中没有使用中断,也没有判断更新标志,主程序有2MS时钟控制循环执行,每2MS执行一次修改占空比和周期的值,
<
回复

使用道具 举报

5

主题

31

回帖

0

蝴蝶豆

新手上路

最后登录
2019-8-30
 楼主| 发表于 2011-7-1 14:05:34 | 显示全部楼层

RE:通用定时器PWM输出不能自动修改周期问题

问题已解决,过程很神奇:我仔细看了一下手册,还在网上看了一下别人做的程序,最后得出结论我的程序没有错,于是上电重新运行,哦也 哈哈 ,不知道之前为毛不可以
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版