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

经验分享 | 通过STM32 TIMER的PWM功能模拟输出正弦波

[复制链接]
攻城狮Melo 发布时间:2026-7-23 15:35

有人想使用STM32芯片的PWM输出功能,基于下面原理图实现指定频率的正弦波。我这里快速演示一下实现过程,任何一个STM32芯片都可以实现下面功能。依照客户的用法,我这里也使用STM32H7芯片来实现。

image.png

下面是主要配置,选用TIMER1,使用CH1做PWM输出。定时器计数时钟为200MHz.

image.png

image.png

下面是DMA配置,DMA请求源是TIM1更新事件。从内存到外设的传输方向。令DMA工作在循环模式。

image.png

下面是测试过程中用到的测试代码:

#define PAI (3.1415926)

#define LengthX (128)

uint32_t Dynamic_CCR[LengthX];

uint8_t i=0;

/ USER CODE BEGIN 2 /

for (i=0;i<LengthX;i++) //Prepare data according the feature of sine function

{

Dynamic_CCR[i] = 25000 + 25000 sin ((2 PAI * i)/LengthX);

}

/ Enable the TIM Update DMA request /

__HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_UPDATE);

/ Enable the DMA stream /

HAL_DMA_Start_IT (htim1.hdma[TIM_DMA_ID_UPDATE], (uint32_t)&Dynamic_CCR[0], (uint32_t)&htim1.Instance->CCR1,LengthX) ;

/ Enable the Capture compare channel /

TIM_CCxChannelCmd (htim1.Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE);

/ Enable the main output /

__HAL_TIM_MOE_ENABLE(&htim1); //Special for advanced TIMER

/ Enable the TIMER Counter/

__HAL_TIM_ENABLE(&htim1);

/ USER CODE END 2 /

基于上面测试代码及电路可以实现下面输出。

1、在TIM1-CH1的PWM输出脚测得的某时刻波形【局部的】:

image.png

2、在外部电容正极测得的某时刻波形:

image.png

3、我们在示波器里将两路输出放在一起观察的波形效果:

image.png

TIM1工作频率200MHZ,计50000个脉冲为1个计数周期,而128个计数周期刚好对应1个正弦周期。所以,根据上面的代码实现的正弦波形的频率则为31Hz。

image.png

这里强调下,建议使用TIMER 更新事件作DMA请求源,并开启TIMER CCR的预装功能,DMA传输的实现函数可以根据STM32外设库里现成的API函数做些调整后使用。其它原理性东西就没有啥要特别强调的了。

如果使用STM32H7系列芯片的话,即使采用上面一模一样的代码,也可能出现无法实现上述功能的情形。这时请注意一个地方,即DMA访问的内存变量安排在什么地址空间。如果说它被安排在DTCM区,通用DMA是访问不到的,自然相应功能也别想实现。

image.png

此时,我们有必要通过IDE的链接配置或在代码里手动做内存地址的指定安排,不要让它落在DTCM区,而应该安排在AXI SRAM或D2 域的SRAM。下面配置中,我将存储CCR变量的内存区安排在AXI SRAM区。

image.png

OK,今天的分享就到这里,但愿能给看官些许收获或启示,下次再聊!

文章出处:茶话MCU

收藏 评论0 发布时间:2026-7-23 15:35

举报

0个回答

所属标签

相似技术帖

官网相关资源

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