学习笔记————STM32通用定时器TIM实现PWM波配置步骤
2020-02-13 22:47
113 查看
STM32通用定时器TIM实现PWM波配置步骤
//1、开启定时器时钟和需要用到的IO口 void Clock_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);//因为准备把PB5口作为输出端口,所以接下来AFIO使能,如果使用默认的PA7 输 //出则不用使能AFIO,但需要使能GPIOA } //2、IO口并重映射TIM3 void GPIO_Out_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//因为启用了AFIO,所以需要配置为复 //用推挽输出;若不进行重映射,使用推挽输出即可,GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//TIM3开启部分重映射 } //3、初始化定时器 void TIM_PWM_Init(u16 arr,u16 psc); { TIM_TimeBaseInit TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period=arr; TIM_TimeBaseStructure.TIM_Prescale=psc; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); TIM_Cmd(TIM3,ENABLE); } //4、初始化输出通道设置 void OC2_PWM_Init(void); { TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState=TIM_OutoutState_Enable; TIM_OCInitStructure.TIM_OCpolarity=TIM_OCpolarity_High; TIM_OC2Init(TIM3,&TIM_OCInitStructure); TIM_OC2preloadConfig(TIM3,TIM_OCPreload); } int main(void) { u16 led0pwmval=0; u8 dir=1; delay_init(); Clock_Init(); GPIO_Out_Init(); TIM_PWM_Init(899,0); OC2_PWM_Init(); while(1) { delay_ms(10); if(dir) led0pwmval++; else led0pwmval--; if(ledopwmval>100) dir=0; if(led0pwmval==0) dir=1; TIM_SetCompare2(TIM3,ledopwmval); //因为每个定时器都有四个输出输出通道,上面第四步使用通道二作为输出,因此这里比较输出 //时也使用通道二 } }
PS:请各位指教,因为是初学有许多不太懂,如果哪里有错误请大家帮忙指出。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- STM32学习笔记6(TIM通用模块生成PWM)
- STM32 通用定时器作为输入捕获 学习笔记
- (转)STM32学习笔记(5):通用定时器PWM输出
- STM32个人学习笔记第三集-通用定时器
- stm32通用定时器(TIMx)学习笔记
- Stm32学习笔记三————定时器TIM
- STM32学习笔记:通用定时器输出PWM
- STM32 通用定时器的定时功能 学习笔记
- STM32学习笔记——stm32定时器中断配置
- STM32学习笔记(5):通用定时器PWM输出
- stm32学习笔记 F1系列通用定时器
- STM32学习笔记:通用定时器基本设定
- STM32学习笔记(5):通用定时器PWM输出
- STM32学习笔记4(TIM32位定时器的实现)
- STM32学习笔记5(TIM通用模块定时功能)
- STM32的学习心得之TIMx(通用定时器)基本的配置
- STM32学习笔记之定时器的配置
- 微软StockTrader 2.03 学习笔记(7)--配置服务实现示例指南(三)
- STM32 FSMC学习笔记+补充(LCD的FSMC配置)
- 2.redis学习笔记:redis List底层数据实现(通用双端链表)