打印

数字电桥spwm生成-stm32f030f4p6+dma

[复制链接]
3567|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用stm32cubemx生成:一、外设设置
1、设置时钟,设置需要pwm输出的引脚


2、设置pwm的模式

3、设置DMA模式

二、程序编写注意点
1、sin表与上面三设置一直,halfword=uint16_t
/* USER CODE BEGIN PV */
uint16_t spwm_table[20]={0x7,0x9,0xb,0xd,0xe,0xe,0xe,0xd,0xb,0x9,0x7,0x5,0x3,0x1,0x0,0x0,0x0,0x1,0x3,0x5};

/* USER CODE END PV */
2、使能pwm
HAL_TIM_PWM_Start_DMA(&htim1, TIM_CHANNEL_3,(uint32_t*)spwm_table,20);
3、pwm完成中断,可在中断中设置标志位,完成同步,例如不断累加,让程序知道目前再哪个相位上。
/* USER CODE BEGIN PFP */
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
        //HAL_TIM_PWM_Stop_DMA(&htim1, TIM_CHANNEL_3);
}
/* USER CODE END PFP */

三、示波器效果
1、波形

2、频谱



使用特权

评论回复

相关帖子

沙发
yjmwxwx| | 2021-8-25 13:25 | 只看该作者
学习了,看了你的帖子我才看到,我程序里面又有错误

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

4810

帖子

50

粉丝