使用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、频谱
|