你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F051C8 ,PA0 不能以DMA的方式输出PWM,没有正确波形输出

[复制链接]
无名氏码农 提问时间:2023-9-5 15:18 / 未解决

实现功能:用STM32F051C8的PA0驱动WS2812B 彩色LED灯条;

实现方法和工具:1.使用Cubemx 生成代码;2.配置PA0,PA0为PWM输出;

配置方式:打开Cubemx软件,新建工程,选择型号STM32F051C8;image.png

选择内部时钟,配置时钟为48Mhz,

image.png

配置TIM2 CH1为DMA PWM输出;

![image.png](data/attachment/forum/202309/05/152936uaqcffrpuzc1ftnn.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 image.png"image.png")

image.png

image.png

生成代码后,加入WS2812b的应用代码;在main函数里增加启动timer2 PWM,用示波器检测不到输出的波形;

使用STM32F030C8 ,同样的配置和WS2812B的应用代码,更换为PA6(对应的timer3,channel1)能够正常输出波形,并且能够点亮彩色LED灯条。

源码见附件:https://pan.baidu.com/s/1p6xXBrK5bCaCwloSoSEqNQ

提取码:1111

image.png
收藏 评论6 发布时间:2023-9-5 15:18

举报

6个回答
xmshao 回答时间:2023-9-5 16:20:53
我这边确认了下,你的配置方面似乎也没啥问题。 你是在通过DMA不停改变占空比来改变亮度吧。
会不会是硬件方面的原因呢,比方被外围电路钳位了。另外,STM32F051 TIM2 CH1的复用脚 还可以
选择PA5或PA15,比方你换成PA5看看,先通过示波器看看有无变化的波形输出。
无名氏码农 回答时间:2023-9-5 18:36:32

xmshao 发表于 2023-9-5 16:20
我这边确认了下,你的配置方面似乎也没啥问题。 你是在通过DMA不停改变占空比来改变亮度吧。
会不会是硬件 ...

更换了其他GPIO,从新设置了对应的timer,PWM和DMA,都没有正常输出

无名氏码农 回答时间:2023-9-6 11:14:07

继续测试,下表已经测试完成;

型号 PA6(tim3ch1) PA0(tim2ch1)
STM32F051C8 不能输出波形(见图2)
STM32F030C8 能够正常输出波形(见图1)

所以想对比测试,继续测试发现STM32F030C8参考手册中说没有tim2;所以就没办法进行验证;后来测试,STM32F051C8的PA0&PA5&PA15(tim2ch1)均没有正常波形输出,只能进行STM32F051C8的PA6(tim3ch1),发现波形输出正常;难道是STM32F051C8的tim2也不能使用?但是我是在现有的硬件上增加固件功能,只能使用PA0接口,其他接口不能使用,这可怎么办呢?(不可能重新设计板子了)

型号 PA6(tim3ch1) PA0&PA5&PA15(tim2ch1)
STM32F051C8 输出正常波形 不能输出波形(见图2)
STM32F030C8 能够正常输出波形(见图1) 参考手册中说没有tim2

注:后来看到网上一个帖子,说其实tim2是可以使用的。晕死;网友的链接:STM32-惊出一身冷汗的TIM2 | MCU起航 (mcublog.cn)

附件代码对比链接:https://pan.baidu.com/s/1I8BA-cAXDdPhZEAwYFCFOg

提取码:1111

波形对比和WS2815B的规格书: 提取码:1111

无名氏码农 回答时间:2023-9-6 11:41:37

xmshao 发表于 2023-9-5 16:20
我这边确认了下,你的配置方面似乎也没啥问题。 你是在通过DMA不停改变占空比来改变亮度吧。
会不会是硬件 ...

经过对比测试,同样的设置,STM32F051C8的tim2不能使用?tim3可以使用且能够正常输出

xmshao 回答时间:2023-9-10 17:51:09

无名氏码农 发表于 2023-9-6 11:41
经过对比测试,同样的设置,STM32F051C8的tim2不能使用?tim3可以使用且能够正常输出
...

我刚查看了stm32f051c8的数据手册,关于TIM2_CH1的复用脚的描述,感觉有点问题,对CH1的PWM复用输出脚描述模糊。现在确定不了,我再进一步确认下后回复你。你可以使用PA5测试下。

xmshao 回答时间:2023-9-13 16:44:22

我今天找了STM23F051R8的开发板做了测试,TIM2-CH1 PWM输出,使用PA0做输出是完全正常的。

这个地方,手册上看,F051C8和R8的TIM2-CH1都是支持PA0输出的。你再确认下硬件线路,我手边一会半会实在找不到F051C8的开发板了。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版