数字电桥spwm生成-stm32f030f4p6+dma

[复制链接]
3819|1
 楼主| 叶春勇 发表于 2021-8-25 12:52 | 显示全部楼层 |阅读模式
使用stm32cubemx生成:一、外设设置
1、设置时钟,设置需要pwm输出的引脚


2、设置pwm的模式

3、设置DMA模式

二、程序编写注意点
1、sin表与上面三设置一直,halfword=uint16_t
  1. /* USER CODE BEGIN PV */
  2. 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};

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

三、示波器效果
1、波形

2、频谱



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

相关帖子

yjmwxwx 发表于 2021-8-25 13:25 | 显示全部楼层
学习了,看了你的帖子我才看到,我程序里面又有错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

4810

帖子

50

粉丝
快速回复 在线客服 返回列表 返回顶部