首页 > 其他分享 >STM32F429IGT6 STMCubeMX PWM 控制 180 舵机

STM32F429IGT6 STMCubeMX PWM 控制 180 舵机

时间:2024-07-23 14:54:42浏览次数:16  
标签:TIM2 CODE HAL htim2 STM32F429IGT6 TIM 180 STMCubeMX USER

设置PWM对应引脚PA2
请添加图片描述

![[QQ_1721613625998.png]]请添加图片描述

定时器2受APB1控制

![[QQ_1721613709674.png]]请添加图片描述

配置时钟为72MHZ

![[QQ_1721613757231.png]]请添加图片描述

HAL库定义PWM
/* TIM2 init function */
void MX_TIM2_Init(void)
{
  /* USER CODE BEGIN TIM2_Init 0 */
  /* USER CODE END TIM2_Init 0 */
  TIM_MasterConfigTypeDef sMasterConfig = {0};
  TIM_OC_InitTypeDef sConfigOC = {0};
  /* USER CODE BEGIN TIM2_Init 1 */
  /* USER CODE END TIM2_Init 1 */
  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 1440-1;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 1000-1;
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  sConfigOC.OCMode = TIM_OCMODE_PWM1;
  sConfigOC.Pulse = 75;
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN TIM2_Init 2 */
  /* USER CODE END TIM2_Init 2 */
  HAL_TIM_MspPostInit(&htim2);
}

void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
{
  if(tim_pwmHandle->Instance==TIM2)
  {
  /* USER CODE BEGIN TIM2_MspInit 0 */
  /* USER CODE END TIM2_MspInit 0 */
    /* TIM2 clock enable */
    __HAL_RCC_TIM2_CLK_ENABLE();
  /* USER CODE BEGIN TIM2_MspInit 1 */
  /* USER CODE END TIM2_MspInit 1 */
  }
}
主函数中启动TIM2的PWM(CH3)通道
20HZ下的舵机控制(180的舵机)
  0 度 -----------------> 占空比为 2.5% -------------> CCR=25

  45 度 -----------------> 占空比为 5% -------------> CCR=50

  90 度 -----------------> 占空比为 7.5% -------------> CCR=75

  135 度 -----------------> 占空比为 10% -------------> CCR=100

  180 度 -----------------> 占空比为 12.5% -------------> CCR=125
/* USER CODE BEGIN 2 */
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3,25);	
		HAL_Delay(1000);
		__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3,50);	
		HAL_Delay(1000);
		__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3,75);	
		HAL_Delay(1000);
		__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3,100);	
		HAL_Delay(1000);
		__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3,125);	
		HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }

请添加图片描述

标签:TIM2,CODE,HAL,htim2,STM32F429IGT6,TIM,180,STMCubeMX,USER
From: https://blog.csdn.net/sumu0519/article/details/140602697

相关文章

  • cf1809D-1900-66min
    重点在于看出来操作1至多执行一次,之后就很容易了,加上一些预处理的小优化就能过,就是代码逻辑比较复杂,对coding能力有一些要求 #include<iostream>#include<cstring>#include<string>#include<cstdio>#include<algorithm>#include<cmath>#include<vector>#include......
  • 0180-进入 64 位模式
    环境Time2022-11-12WSL-Ubuntu22.04QEMU6.2.0NASM2.15.05前言说明参考:https://os.phil-opp.com/entering-longmode目标从保护模式切换到长模式。定位代码段因为当前还是执行的32的指令,所以需要执行跳转,重新选择GDT,这里给代码段加了一个标记。gdt64:dq0......
  • P1809 过河问题
    题目描述有一个大晴天,Oliver与同学们一共 ......
  • ARC180E LIS and Inversion
    题目大意一个排列\(p\)分数为\(p\)的最长上升子序列的长度,代价为满足\(\sum_{j=1}^{i-1}[p_j>p_i]<a_{i}\)的\(i\)的数量给定\(\{a_n\}\),对于\(\forallk\in[1,n]\),求分数大于等于\(k\)的排列的代价的最小值\[n\leq250000,1\leqa_i<i\]题解玄妙优化\(dp\)题我们可以考虑求......
  • CF 1981 D. World is Mine (*1800) DP+博弈论
    CF1981D.WorldisMine(*1800)DP+博弈论题目链接题意:有\(n\)个蛋糕,每个蛋糕有一个美味值\(a_i\),\(Alice\)和\(Bob\)轮流吃蛋糕,\(Alice\)每次必须选择吃严格大于之前所吃的蛋糕美味程度。\(Bob\)随意选择。有人没有蛋糕可以吃时,游戏结束。\(Alice\)想吃更多......
  • AT_arc180_a [ARC180A] ABA and BAB 题解
    思路首先一个浅显易得的结论,当\(A\)或\(B\)连续出现时,我们可以将它们分成两段,每段都可以看作一个独立事件,结果数只和每个独立事件的样本点有关。我们设独立事件共有\(tot\)个,每个独立事件的样本点为\(w_i\),则显然有\(ans=\prod_{i=1}^{tot}w_i\)。接下来该找\(w_i\)......
  • springboot健身房管理系统-计算机毕业设计源码031807
    摘 要大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在健身房管理的要求下,开发一款整体式结构的健身房管理系统,将复杂的系统进行拆分,能够实现对需求的变化快速响应、系统稳定......
  • CF 1968 F. Equal XOR Segments (*1800) 思维
    CF1968F.EqualXORSegments(*1800)思维题意:给你一个长度为\(n\)的数组,如何可以把数组分成\(k(k>1)\)组,并且使得每组的异或和相等,那么这个数组就是完美的。现在给你\(q\)组询问,每次给你\(l,r\)。请你判断\(a_l\)到\(a_r\)之间是否是完美的。思路:对于每次询问......
  • Day 25:1807. 替换字符串中的括号内容
    Leetcode1807.替换字符串中的括号内容给你一个字符串s,它包含一些括号对,每个括号中包含一个非空的键。比方说,字符串“(name)is(age)yearsold”中,有两个括号对,分别包含键“name”和“age”。你知道许多键对应的值,这些关系由二维字符串数组knowledge表示,其......
  • 环境配置·Ubuntu1804安装CUDA和Pytorch
    InitUbuntuandchangedeb&pipsourcewgethttps://github.com/blueflylabor/blueflylabor.github.io/blob/main/toolbox/initUbuntu/initUbuntu.shbash./initUbuntu.shCUDA11.6wgethttps://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64......