STM32 的 PWM 波形输出例程调试芯片: STM32F103C8T6 外部晶振: 8MHz 功能介绍:使用 Timer3 实现两路(可四路) PWM 波形的输出代码如下: 初始化:系统时钟初始化, GPIO 端口初始化, Timer 初始化系统时钟初始化: 1./* 配置系统时钟为 72M */ (); GPIO 端口初始化: 1./* *************************************************************** 2.*函数名: void GPIO_Config( void ) 3.*描述:配置复用输出 PWM 时用到的 I/O 4.*输入:无 5.*输出:无 6.*调用:main() 调用 7.***************************************************************/ GPIO_Config( void ) 9.{10. GPIO_InitTypeDef GPIO_InitStructure; 11. 12. /* GPIOA and GPIOB clock enable */ 13. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); 14. 15. /*GPIOA Configuration: TIM3 channel 1and 2as alternate function push-pull */ 16. =GPIO_Pin_6 |GPIO_Pin_7; 17. =GPIO_Mode_AF_PP; // 复用推挽输出 18. =GPIO_Speed_50MHz; 19. GPIO_Init(GPIOA, &GPIO_InitStructure); 20. } Timer 初始化:1./**************************************************************** 2.*函数名: void TIM3_Config(void) 3.*描述:配置 TIM3 输出的 PWM 信号的模式 4.*CH1: 输出 T=(f=1/=400Hz) D= 的PWM 波(高电平在前,低电平在后)5.*CH2: 输出 T=(f=1/=400Hz) D= 的PWM 波(高电平在后,低电平在前)6.*步骤一:通过 T和TIMxCLK 的时钟源确定 TIM_Period 和TIM_Prescaler 7.*T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK= 8.*因为 TIM_Period<65535 ,所以 TIM_Prescaler>1, 即TIM_Prescaler=2 9.*所以 TIM_Period=59999=0xEA5F 10. *步骤二:根据 TIM_Period 的值,高低电平的先后 D,R 和 TIM_OCPolarity 11. *CH
STM32的PWM波形输出例程 来自淘豆网www.taodocs.com转载请标明出处.