PWM 波中间变形
1. 设定 CCR4 的 DMA 通道,并且设定此时 Timer1 的 preload 为禁止状态;
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Disable);
2. 在 CCR4 比较值部分产生 DMA 事件;
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&(TIM1->CCR1));
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)(uint32_t)(hDmaBuff2);
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = 2u;
….
TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE);
3. 在 1 点上将 CCR1 数据直接修改为周期数据+1;
4. 在 2 点上将 CCR1 数据修改为 CCR1’的数据;
5. 时间计算上按照上面的图示设定,中间凹陷时间为两边补充波形时间之和。
|