TIM通用定时器-PWM
一、PWM原理
PWM应用:呼吸灯、直流电机、舵机
PWM代码:
//初始化 timer2的pwm输出参数 //psr:预分频 //arr:自动重装载 //pulse:捕获/比较 void timer2_pwm_init(uint16_t psr,uint16_t arr,uint16_t pulse) { timer_parameter_struct timer_init_struct; timer_oc_parameter_struct timer_oc_init_struct; //时钟源和io口PB0的初始化 rcu_periph_clock_enable(RCU_TIMER2);//开启定时器的时钟 rcu_periph_clock_enable(GPIOB); rcu_periph_clock_enable(RCU_AF);//复用 gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_0); //初始化timer2 timer_deinit(TIMER2); timer_init_struct.prescaler = psr; timer_init_struct.period = arr; //自动装载值 timer_init_struct.alignedmode = TIMER_COUNTER_EDGE; //边沿对齐 timer_init_struct.counterdirection = TIMER_COUNTER_UP;//计数方向 //PWM的初始化 timer_oc_init_struct.outputstate = TIMER_CCX_ENABLE;//使能通道 timer_channel_output_config(TIMER2,TIMER_CH_2,&timer_oc_init_struct);); timer_channel_output_mode_config(TIMER2,TIMER_CH2,TIMER_OC_MODE_PWM); //使能timer2 timer_enable(TIMER2); } //功能:调整PWM的占空比 //duty:捕获/比较 void timer2_pwm_duty_set(uint16_t duty) { timer_channel_output_pulse_value_config(TIMER2,TIME_CH_2,duty); }
相关文章:
32.PWM输出原理与配置_pwm配置_YOURUOLI的博客-CSDN博客
(9条消息) 面向应用学习stm32(7)-TIM通用定时器-PWM输出和输入_stm32 pwm输入_这里煤球的博客-CSDN博客
STM32学习(10)-定时器描述,三种计数方式,定时器的工作框图,定时器时钟来源,定时器相关寄存器和函数,通用定时器实现定时的步骤_简述stm32单片机的计数形式_在于探索的博客-CSDN博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了