OpenEdv-开源电子网

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

TIM1产生PWM信号一个奇怪的问题。

[复制链接]

5

主题

8

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2019-1-15
在线时间
7 小时
发表于 2019-1-15 19:17:00 | 显示全部楼层 |阅读模式
1金钱
问题是这样。我用高级定时器TIM1输出一路PWM信号来控制舵机。舵机是SG90,控制要求是输出周期为20ms的PWM,占空比在0.5~2.5ms之间,就能控制了。
然后我在初始化TIM_OCInitTypeDef这个输出比较结构体的时候,里面的TIM_Pulse这个成员,我如果直接在初始化函数里面给它赋了值,TIM_Pulse=1000(1ms),那么我在main()函数里面,调用GPIO初始化和TIM的初始化以后,程序跑起来,舵机这么都不转。这时候我用模拟示波器去看,发现PA8(TIM1的CH1通道)输出的是标准的PWM信号。不仅舵机不动这个问题,还有一个问题是,理论上算得PWM周期是20ms, 我取的psc=71,arr=19999。 在模拟示波器上一个周期却是13ms。让我特别困惑。

今天我把TIM_Pulse这个成语,在初始化的时候配置为0。然后main()里面调用的时候以参数的形式输入给TIM的配置函数。这个时候舵机就能正常动起来了。
这是怎么一回事呢?
而且这样以后我用模拟示波器去观察PA8,发现这个时候没有PWM波形了。。
这又是怎么一回事呢?

请大佬给解解惑。

最佳答案

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

建议先搞对PWM输出。 计算方法,参考我们的PWM例程和教程。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-1-15 19:17:01 | 显示全部楼层
建议先搞对PWM输出。 计算方法,参考我们的PWM例程和教程。
回复

使用道具 举报

87

主题

569

帖子

0

精华

高级会员

Rank: 4

积分
831
金钱
831
注册时间
2014-9-30
在线时间
140 小时
发表于 2019-1-16 10:30:08 | 显示全部楼层
干嘛 要 【用模拟示波器】,买一个
50MHz  四通道 示波器,才 2000人民币 。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 04:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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