OpenEdv-开源电子网

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

TIM_OCMode_PWM1模式占空比不稳,TIM_OCMode_Toggle稳得很

[复制链接]

40

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2014-11-21
在线时间
22 小时
发表于 2015-4-2 21:09:35 | 显示全部楼层 |阅读模式
5金钱

void TIM_Configuration(void)
{
 /* 定义 TIM_TimeBase 初始化结构体 TIM_TimeBaseStructure */
 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 /* 定义 TIM_OCInit 初始化结构体 TIM_OCInitStructure */
 TIM_OCInitTypeDef  TIM_OCInitStructure;

 TIM_TimeBaseStructure.TIM_Period = 65535; //如TIM_Period = 0x3E7则波形频率为TIMCLK/(0x3E7+1)
            // 且只要TIM_Period 不为零,则其TIMCLK为系统频率的一半

 if (arr > 1000)TIM_TimeBaseStructure.TIM_Prescaler = 0; //分频 TIMCLK/(0x3E7+1)/(TIM_Prescaler+1)
 if (arr <= 1000)TIM_TimeBaseStructure.TIM_Prescaler = 999; //分频 TIMCLK/(0x3E7+1)/(TIM_Prescaler+1) 
 TIM_TimeBaseStructure.TIM_ClockDivision = 0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
 TIM_TimeBaseInit(TIM2 , &TIM_TimeBaseStructure);

 //TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

 TIM_OCInitStructure.TIM_Pulse = CCR1_Val; 
 TIM_OC1Init(TIM2, &TIM_OCInitStructure);

 /* 禁止预装载寄存器 */
 TIM_OC1PreloadConfig(TIM2 , TIM_OCPreload_Disable);//若没有禁止预装载寄存器,则每次计数至65525过程中
  //总在当前固定值处发生计数比较匹配事件,并请求计数比较匹配中断,执行中断服务函数*


 TIM_ARRPreloadConfig(TIM2, ENABLE);
 TIM_ITConfig(TIM2 , TIM_IT_CC1, ENABLE); 
 
}


TIM_OCMode_PWM1模式占空比不稳,TIM_OCMode_Toggle稳得很

是不是代码有误

打倒A莫,打倒小日本
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

40

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2014-11-21
在线时间
22 小时
 楼主| 发表于 2015-4-2 21:14:51 | 显示全部楼层
打倒A莫,打倒小日本
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-2 22:11:16 | 显示全部楼层
帮顶....
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2016-3-30
在线时间
11 小时
发表于 2016-3-30 17:04:46 | 显示全部楼层
TIM_TimeBaseStructure.TIM_Period = 65535; 这里设置成其他值看看
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 05:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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