OpenEdv-开源电子网

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

在学习STM32F1系列中发现的一些问题

[复制链接]

11

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2013-8-4
在线时间
69 小时
发表于 2015-10-23 01:34:48 | 显示全部楼层 |阅读模式
5金钱
最近闲来无事,又拿出自己以前的STM32程序捣鼓了一番,然后与原子的代码进行了对比。
在进行PWM的输出上,与原子的代码出现了较大的差异。
在没有学习原子的代码之前,我输出PWM时,TIM是这样配置的:
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler = psc;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);

/* Configures the TIM2 Channel1 in PWM Mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_Channel = TIM_Channel_1;
TIM_OCInitStructure.TIM_Pulse = arr/2;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInit(TIM2, & TIM_OCInitStructure);
原子官方的代码是这样的:

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;

TIM_TimeBaseStructure.TIM_Period = arr; 
TIM_TimeBaseStructure.TIM_Prescaler =psc;
TIM_TimeBaseStructure.TIM_ClockDivision = 0; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM3, &TIM_OCInitStructure);  

TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); 

TIM_TimeBaseInitTypeDef  的配置与原子的一模一样,但是TIM_OCInitTypeDef的配置出现了较大的差异。细心的朋友不难发现,原子的代码与我的代码有几处不同之处,我配置了Channel、Pulse,而原子只配置了TIM_OutputState。
我先说说我配置的这两个参数的作用,Channel的作用就是指明是定时器的通道几产生PWM,而Pulse则配置了PWM的占空比,我在代码中取了arr/2,刚好就为50%占空比。
而原子配置了TIM_OutputState为输出比较使能。
经过验证,两种配置都能产生PWM,但是为什么会出现这两种不同的配置呢?
求各位大神批评指正!!!  

[mw_shl_code=c,true][/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

没有配置的参数使用默认值, 占空比要可调的, 也不用配置ARR/2
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5787
金钱
5787
注册时间
2013-11-22
在线时间
1213 小时
发表于 2015-10-23 01:34:49 | 显示全部楼层
没有配置的参数使用默认值, 占空比要可调的, 也不用配置ARR/2
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-10-23 10:45:03 | 显示全部楼层
重新编辑一下吧

你发完都不看一下发的有没有问题吗
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

11

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2013-8-4
在线时间
69 小时
 楼主| 发表于 2015-10-23 11:34:39 | 显示全部楼层
回复【2楼】龙之谷:
---------------------------------
初次发帖 不大熟练 已更正
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-10-23 11:54:47 | 显示全部楼层
帮顶.....
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 20:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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