pwm输出依靠的是定时器通道,stm32除了定时器6,7,都有输出pwm的通道,高级定时器通道数还要多于普通定时器。定时器的核心特质就是两个参数:频率和占空比,这里先告诉大家结果,设置频率在CubeMX上设置,而占空比我写了一个函数大家可以设置占空比。 这是我自己写的设置pwm值的方法,原理在上面那几张图里面有讲解,大家看一下很容易明白。 到这里就是pwm输出的用法了,设置之后我的舵机接在这连个通道上可以看出是转到了我想要的角度上的,这里补充一点,9克舵机转角为180度左右,时基是20ms,也就是在20ms这个周期上,每个周期若果占空比为0.5ms,就转到0度位置,如果占空比为2.5ms,就转到180度极限位置,中间的位置自己换算,很容易上手用,至于其他舵机大同小异哈。 我是一个新人博主,目前也是一个大学生,但是真心喜欢嵌入式和物联网,已经自学3年了,我会带着热爱一直把博文写下去,也是自己记笔记的一种方式,大家可以关注我,给我留言,一起学习
这一节是设置STM32单片机定时器PWM输出驱动舵机
第一步在CubeMX上开启pwm输出通道:
开启pwm输出是很简单的哈,但是要理解他这个分频和计数周期的设置,这很重要。第二步:在生成的工程中使用PWM输出
下面是main中该有的部分
下面是自己写的设置pwm的函数部分
这是使能定时器那一点代码 HAL_TIM_PWM_Start(&htim9, TIM_CHANNEL_1); //使能PWM输出 HAL_TIM_PWM_Start(&htim9, TIM_CHANNEL_2); //使能PWM输出 SET_PWM(htim9,50,1); SET_PWM(htim9,250,2);
void SET_PWM(TIM_HandleTypeDef tim_temp,uint16_t value , unsigned char num) { if(num == 1){ TIM_OC_InitTypeDef sConfigOC; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = value; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&tim_temp, &sConfigOC, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&tim_temp, TIM_CHANNEL_1); } if(num == 2){ TIM_OC_InitTypeDef sConfigOC; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = value; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&tim_temp, &sConfigOC, TIM_CHANNEL_2); HAL_TIM_PWM_Start(&tim_temp, TIM_CHANNEL_2); } if(num == 3){ TIM_OC_InitTypeDef sConfigOC; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = value; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&tim_temp, &sConfigOC, TIM_CHANNEL_3); HAL_TIM_PWM_Start(&tim_temp, TIM_CHANNEL_3); } if(num == 4){ TIM_OC_InitTypeDef sConfigOC; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = value; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&tim_temp, &sConfigOC, TIM_CHANNEL_4); HAL_TIM_PWM_Start(&tim_temp, TIM_CHANNEL_4); } }
最后
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算