当前位置:   article > 正文

STM32F103C8T6的定时器输出PWM,控制舵机和电机,STM32CubeMX和Hal库程序_stm32f103c8t6输出pwm

stm32f103c8t6输出pwm

采用STM32F103C8T6的定时器,输出PWM信号,用于控制模型车的舵机和电机速度。
采用的是STM32CubeMX和Hal库函数程序。

常规舵机和电调的PWM信号

舵机和电调的PWM信号的周期通常为20ms。
对于舵机,高电平部分时间一般为0.5ms~2.5ms范围内调整角度,0.5ms对应0°,1ms对应45°,1.5ms对应90°,2ms对应135°,2.5ms对应180°。
对于电机电调,高电平部分时间一般为1ms~2ms,1.5ms是归中,1ms和2ms分别为前进和后退的满速度。

定时器的PWM输出功能

在这里插入图片描述
在这里插入图片描述

STM32CubeMX配置

STM32F103C8T6定时器时钟设置为72MHz
在这里插入图片描述

采用TIM3定时器产生PWM信号
在这里插入图片描述
PSC设定为719,ARR设定为1999,用于产生20ms脉冲周期。
将遥控器的摇杆电位器通过ADC采集,并转化为0-100数字,此时CRR为0-100数字+100,就可以得到1ms~2ms的高电平占比

程序部分

	HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
  • 1
  • 2
	__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,(controler_data[0]+100));	
	__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,(controler_data[1]+100));	
  • 1
  • 2

模型车轮子方向归正和马达零速代码块

			__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,150);	
			__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,150);	
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/302100
推荐阅读
相关标签
  

闽ICP备14008679号