《PWM输出实验学习笔记.doc》由会员分享,可在线阅读,更多相关《PWM输出实验学习笔记.doc(2页珍藏版)》请在金锄头文库上搜索。
1、2016.4.14PWM输出实验u STM32 PWM工作过程(通道1为例)CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。CCMR1: OC1M2:0位: 对于PWM方式下,用于设置PWM模式1【110】或者PWM模式2【111】110: PWM 模式 1 在递增计数模式下,只要 TIMx_CNTTIMx_CCR1,通道 1 便为无效状态 (OC1REF=0),否则为有效状态 (OC1REF=1)。111: PWM 模式 2 在递增计数模式下,只要 TIMx_CNTTIMx_CCR1,通道 1 便为有效状态,否则为无效状态。(无论是向上计数还是向下计数,计数器值小于比较值时
2、,都是有效电平)CCER:CC1P位:输入/捕获1输出极性。0:高电平有效,1:低电平有效。CCER:CC1E位:输入/捕获1输出使能。0:关闭,1:打开。void TIM_OCxPreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);u PWM输出配置步骤: 使能定时器14和相关IO口时钟。 使能定时器14时钟:RCC_APB1PeriphClockCmd(); 使能GPIOF时钟:RCC_AH
3、B1PeriphClockCmd (); 初始化IO口为复用功能输出。函数:GPIO_Init(); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; /复用功能 GPIOF9复用映射到定时器14 GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14); 初始化定时器:ARR,PSC等:TIM_TimeBaseInit(); 初始化输出比较参数:TIM_OC1Init(); TIM_OCMode();选择定时器模式1或模式2 TIM_OutputState;比较输出使能OR失能 TIM_Pulse;比较值,写CCRx(在外部控制TIM_SetCompare1()) TIM_OCPolarity;比较输出极性控制 使能预装载寄存器: TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable); 使能自动重装载的预装载寄存器允许位TIM_ARRPreloadConfig(TIM14,ENABLE); 使能定时器。 不断改变比较值CCRx,达到不同的占空比效果:TIM_SetCompare1();