欢迎来到天天文库
浏览记录
ID:6078481
大小:307.43 KB
页数:7页
时间:2018-01-02
《stm32 高级定时器-pwm简单使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、STM32高级定时器-PWM简单使用(转)2010-07-1016:19高级定时器与通用定时器比较类似,下面是一个TIM1的PWM程序,TIM1是STM32唯一的高级定时器。共有4个通道有死区有互补。先是配置IO脚: GPIO_InitTypeDefGPIO_InitStructure; /*PA8设置为功能脚(PWM)*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitSt
2、ructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); /*PB13设置为PWM的反极性输出*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPI
3、OB,&GPIO_InitStructure);/*开时钟PWM的与GPIO的*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);/*配置TIM1*/ TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_O
4、CInitTypeDefTIM_OCInitStructure;voidTim1_Configuration(void){ TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_OCInitTypeDefTIM_OCInitStructure; TIM_DeInit(TIM1);//重设为缺省值/*TIM1时钟配置*/TIM_TimeBaseStructure.TIM_Prescaler=4000; //预分频(时钟分频)72M/4000=18KTIM_TimeBaseStructure.TIM_
5、CounterMode=TIM_CounterMode_Up; //向上计数TIM_TimeBaseStructure.TIM_Period=144; //装载值18k/144=125hz就是说向上加的144便满了TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //设置了时钟分割不懂得不管TIM_TimeBaseStructure.TIM_RepetitionCounter=0x0; //周期计数器值不懂得不管TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStr
6、ucture); //初始化TIMx的时间基数单位/*Channel1ConfigurationinPWMmode通道一的PWM*/TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; //PWM模式2TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//正向通道有效PA8TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//反向通道也有效PB13TIM_OCInitStruc
7、ture.TIM_Pulse=40; //占空时间144中有40的时间为高,互补的输出正好相反TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;//输出极性TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low; //互补端的极性TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;//空闲状态下的非工作状态不管TIM_OCInitStructure.TIM_OCNIdle
此文档下载收益归作者所有