OpenEdv-开源电子网

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

STM32F103C8T6单片机高级定时器PWM输出问题?

[复制链接]

8

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2018-5-4
在线时间
27 小时
发表于 2018-5-4 19:14:29 | 显示全部楼层 |阅读模式
5金钱
使用TIM1、TIM2、TIM4三个定时器同时输出3路50%占空比的方波信号,方波的频率会随着触发条件不断更改,我用的方法是一旦触发,就会重新初始化定时器改变分频值从而改变方波频率。 已经确定三个定时器的基础配置无问题,单独使用均可以正常发出PWM波,但是在主函数中同时应用高级定时器却无法正常输出PWM波,而其他两个普通定时器输出的PWM波会随着触发条件及时改变方波频率。TIM1会在复位后输出方波但是一旦触发条件改变方波便会消失,再次复位后有一定概率再次出现正确频率的方波。 配置过程和原子mini例程一样的。请问大神门是不是我定时器的使用方法有误?望得到指点!

1

1

2

2

3

3

4

4

5

5


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2018-5-5 01:22:01 | 显示全部楼层
回复

使用道具 举报

8

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2018-5-4
在线时间
27 小时
 楼主| 发表于 2018-5-5 09:32:17 | 显示全部楼层

谢谢原子哥,不过我把TIM1的通道一相关配置全部换成通道4的PA11引脚程序是好用的。难道一通道和四通道有区别? 我看数据手册上说TIM1的PWM有3个可编程通道是什么意思? 单独使用PA8在主函数里输出PWM是可以的,和其他定时器同时输出就不行了!
回复

使用道具 举报

8

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2018-5-4
在线时间
27 小时
 楼主| 发表于 2018-5-5 21:05:05 | 显示全部楼层
现在的问题是 我使用TIM1 通道一 PA8引脚就会出现一开始我说的问题,但是我换成通道4  PA11后 问题就消失了一切正常了。PA8引脚我没有在其他地方配置过,用了spi iic uart TIM3定时器中断,还有几个控制LED的引脚,实在没找到哪里隐含PA8的!
回复

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2019-3-12
在线时间
16 小时
发表于 2019-5-1 16:23:28 | 显示全部楼层
燕园技术宅 发表于 2018-5-5 21:05
现在的问题是 我使用TIM1 通道一 PA8引脚就会出现一开始我说的问题,但是我换成通道4  PA11后 问题就消失了 ...

我也有类似的问题,不知道你这个解决了没
回复

使用道具 举报

8

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2018-5-4
在线时间
27 小时
 楼主| 发表于 2019-5-21 11:18:41 | 显示全部楼层
左龙道玄 发表于 2019-5-1 16:23
我也有类似的问题,不知道你这个解决了没

最后没解决,直接换成了另一个通道
回复

使用道具 举报

7

主题

31

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2018-6-13
在线时间
11 小时
发表于 2019-7-30 08:22:45 | 显示全部楼层
燕园技术宅 发表于 2019-5-21 11:18
最后没解决,直接换成了另一个通道

PA8软件仿真没问题,但是烧进去就是不出PWM波形
回复

使用道具 举报

15

主题

93

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1765
金钱
1765
注册时间
2013-8-22
在线时间
128 小时
发表于 2020-7-7 15:53:42 | 显示全部楼层
方法1:可能是PA8和USART1在初始化上有冲突,先初始化PA8为TIM1的CH1   PWM输出,再初始化USART1估计就好了,
方法2:高级定时器使用PWM输出时,要手动打开PWM输出,初始化最后加上TIM_CtrlPWMOutputs(TIM1, ENABLE); 或者TIM1->BDTR=8000; 就可以了
我不理财,财就不理我。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-2 12:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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