OpenEdv-开源电子网

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

PWM的怪事,两个逻辑看起来一样的代码一个能跑,一个不行

[复制链接]

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2020-7-13
在线时间
12 小时
发表于 2020-8-28 17:07:02 | 显示全部楼层 |阅读模式
4金钱
最近在学PWM实验的时候出现了一点问题,小弟我是mini版的板子,PA8是LED灯也可以作为TIM1的PWM输出
我搞PWM舵机实验的时候发现:配置定时器PWM功能代码和TIM1初始化代码放在一起和没放在一起仿真结果居然不同
这一个代码是将PWM配置代码和TIM1初始化代码分成两个函数
QQ浏览器截图20200828163336.png QQ浏览器截图20200828164258.png

他的仿真结果是这样的
QQ浏览器截图20200828163240.png
另一个代码是将两个部分放在一个函数里
QQ浏览器截图20200828163349.png
QQ浏览器截图20200828164415.png

他仿真结果是这样的
QQ浏览器截图20200828163516.png
这令小弟我百思不得其解,第一个代码是我以第二个为原件,将定时器代码分成两个部分放在不同函数里,总体来看代码的顺序也没什么不同
为什么仿真的结果不同,高低电平部分反过来了,就好像极性变了
现实烧录程序的时候,第一个代码的话:我按它的逻辑来设置占空比,发现这个代码没办法控制舵机,而且改变占空比的话,LED灯的亮度也没变
第二个代码的话,他就可以正常运行,可以控制舵机,LED亮度也会随我改的占空比变化

我初学STM32,能力有限,这个问题困扰了我一个晚上,求助各位大神能解答小弟的疑惑
为了防止我疏忽导致的错误,这里我放上keil文件,文件里的PWMDJ.c是可以正常跑的代码,cs.c是不行的代码 PWM控制舵机实验.zip (2.62 MB, 下载次数: 8)

最佳答案

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

直接把内容复制黏贴啊
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2020-8-28 17:07:03 | 显示全部楼层
ZackDC 发表于 2020-8-28 20:44
我刚才又试了一下,用cs.c文件,看了仿真,还是占空比大,cs.c跑舵机还是跑不了,PWMDJ.c控制舵机就可以 ...

直接把内容复制黏贴啊
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2020-8-28 17:59:15 | 显示全部楼层
程序上看是这么操作是没有问题的,下载后 PWMDJ.c,cs.c 仿真的结果都是你第二图,也就是占空比很小的波形,这和比你题目有出入。重新检查一下吧。
回复

使用道具 举报

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2020-7-13
在线时间
12 小时
 楼主| 发表于 2020-8-28 20:44:35 | 显示全部楼层
弦子的弦 发表于 2020-8-28 17:59
程序上看是这么操作是没有问题的,下载后 PWMDJ.c,cs.c 仿真的结果都是你第二图,也就是占空比很小的波形 ...

我刚才又试了一下,用cs.c文件,看了仿真,还是占空比大,cs.c跑舵机还是跑不了,PWMDJ.c控制舵机就可以,可能是我keil设置没搞好
回复

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-4-28
在线时间
42 小时
发表于 2020-8-31 16:13:05 | 显示全部楼层
用step跑一下  估计有部分代码跳过了
回复

使用道具 举报

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2020-7-13
在线时间
12 小时
 楼主| 发表于 2020-9-1 16:00:19 | 显示全部楼层
今天写代码的时候又碰到这个问题了,我在写别的头文件的时候,没有去动定时器部分代码,不知怎么的初始化PWM的极性就变成LOW了(本来是High),不过用OC2PolarityConfig设置回来还是能用的,虽然这个问题什么原因小弟我还是不知道,但也算是解决了,感谢各位大神的解答,最佳答案就给弦子大大了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 11:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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