STM32 HAL库 CUBE配置 单通道驱动舵机


软硬件型号

STM32F103RCT开发板
STM32CUBEMX+KEIL5编程
STM32F1 1.8.3 库版本

一、舵机需要什么信号?

  1. 正负极电压信号:这个具体要看购买的舵机为那种类型,有3.3v的,8.0v的,还有各种的类型。
  2. 脉宽调制信号(PWM):对于180°的舵机,一般来说周期为20ms(频率为50Hz),脉宽(一个周期内高电平持续时间)为500–2500us。其中为1500us使得舵机转轮处于中间位置,可以理解为90°的位置,为500-1500us和1500–2500us之间分别会朝着0–90°和90–180°的方向旋转。

二、实现步骤

1. CUBE配置

这里仅以TIM2和它的通道2进行配置(选择芯片等基本内容不再赘述):

  1. 时钟树配置
    在这里插入图片描述
    此处我是直接利用的的默认的分频系数,没有进行改动,根据自己的需求改动即可。
  2. 选择晶振时钟
    点击RCC
    在这里插入图片描述
    选择石英晶振
    在这里插入图片描述
  3. 选择定时器及其通道
    在这里插入图片描述
  4. 计算分频系数等参数
  • 这里频率是8MHz,首先将其800分频:
    在这里插入图片描述
    不知道这里八百分频为什么要写成800-1,建议先看下数电的计数器部分巩固基础知识。
  • 现在的计数器加一需要消耗的事件为1/(8MHz/800)= 0.1ms,想要周期为20ms,那就需要计数20/0.1 = 200次,那么自动重装载值就是200
    在这里插入图片描述
  • 现在周期为20ms,我们需要设置脉宽了,计数200就是20ms,想要高电平持续时间为1.5ms,就需要计数15次,那么我们的比较值就需要是15啦
    在这里插入图片描述
    如果我们想要改变他的初始值的话就在代码里边改变CCR的值就可以了。
  1. 接着导出代码
    在这里插入图片描述
    在这里插入图片描述

2. 代码添加

  1. 启动PWM的输出
    在main函数里边添加:
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);

表示启动定时器2,通道2的PWM输出
2. 在while循环里边添加:

TIM2->CCR2=10;
HAL_Delay(2000);
TIM2->CCR2=20;
HAL_Delay(2000);

表示改变比较值,使输出的脉宽在1000us和2000us之间进行切换,从而实现角度的偏转。
3. 整体main函数如下:

int main(void)
{
    
    
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
	HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    
    
    TIM2->CCR2=10;
		HAL_Delay(2000);
		TIM2->CCR2=21;
		HAL_Delay(2000);
		
		/* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

源码下载

猜你喜欢

转载自blog.csdn.net/weixin_50303783/article/details/113790924