OpenEdv-开源电子网

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

stm32定时器一些心得和疑问

[复制链接]

38

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2011-7-12
在线时间
0 小时
发表于 2011-11-17 17:03:16 | 显示全部楼层 |阅读模式
 

stm32定时器一些心得

QQ截图20111117161807.png QQ截图20111117163604.png QQ截图20111117163632.png
stm32的普通定时器输出比较设置有些难理解,找了不少资料后,总结了以下观点(不一定对),还请纠错


TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Inactive;
//
低电平

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;


TIM_OCInitStructure.TIM_Pulse = 20000;


TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//
高电平有效,CC1P=0,没有反相

所以输出电平为低电平。

主要是TIM_OCMode_Inactive和TIM_OCPolarity_High的关系要对应好。图中显示了它们关系。

TIM_OCMode_Inactive:输出比较非主动模式 (匹配时设置输出引脚为无效电平,当计数值为比较/捕获寄存器值相同时,强制输出为低电平)

TIM_OCPolarity_High: 高电平有效,对应CC1P为0,即原值输出(没反相),所以总的输出为低电平。

我在实验班上实验,对应TIM_OCPolarity_High时,Timing,Inactive,模式,都输出为低电平,toggle输出高电平应该是对的,可Active模式对应

TIM_OCPolarity_High时,输出为低电平,这就不对了,TIM_OCMode_Active为高电平,所以输出应该高电平,这样解释对不对?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-11-17 18:11:29 | 显示全部楼层
回复【楼主位】天马:
---------------------------------
库函数的,你软件仿真看寄存器值.再拿寄存器值来和参考手册的寄存器值对照下看看.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 21:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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