HAL_Cubemx pwm的基础配置,有代码复制可上手测试

HAL库配置PWM,用于舵机和电机,炒鸡好用

1.hal配置

如下图所示,RCC时钟源使用外部晶振
在这里插入图片描述

这里是配置SW下载
在这里插入图片描述

这里是使用了定时器TIM1,选择使用外部时钟和PWM的通道,如果想选两个通道也是可以的
在这里插入图片描述
接下来是TIM的基础配置,比如ARR,CCR,PSC这些决定PWM参数的值,公式为
频率:
ω =Tclk(选择的时钟频率) / ((arr+1)*(psc+1)) (单位Hz)

占空比:

duty= ccr / arr (单位%)

在红色处修改PSC,ARR,笔者这里是使用STM32F103c8t6的板子,72MHZ,驱动舵机需要20ms即50HZ的周期,故修改参数如图
在这里插入图片描述

下图为修改CCR的值,如果有固定要求就修改,一般用函数修改,后文会提,然后通道极性就是选择高低电平时反转,不清楚的话就后面看实验现象修改,以及那个PWM模式1还是2,同理
在这里插入图片描述

在时钟树这里没有要求就直接72回车
在这里插入图片描述

如下图修改文件名称,地址,主要不要出现中文,笔者也经常在这里犯错。
在这里插入图片描述
这里就这样配置,如下图,

在这里插入图片描述
结束,最后右上角直接一键生成,over!
在这里插入图片描述

2.MDK_Keil 配置

舵机.c文件

#include "duoji.h"

extern TIM_HandleTypeDef htim1;
// ARR为10000-1,PSC为144-1,舵机要求为50HZ
//在主程序中写 HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);  //开启PWM通道1

void DuoJi_Angle(float angle)
	

{

	CCR=angle*1000/180+250;//这里PSC和ARR和笔者不一样的话要修改,就是小学二年级数学知识,不再累述
					//舵机所需要的高电平持续时间为0.5ms到2.5ms
					//总时间为50HZ也就是20ms,所以占空比为2.5%-12.5%
					//ARR这里为10000,所以ccr的范围是250-1250
					//根据角度和ccr的线性关系0-180°与250-1250
  __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_1, (int)CCR); //这里就是修改CCR的地方,
                                                       //笔者将这封装成函数方便使用



}
	

提醒一下这句话要有,不然有错误

extern TIM_HandleTypeDef htim1;//有几个通道写几个

舵机.h文件

#include "main.h"

#ifndef  __DUOJI___H__


#define  __DUOJI___H__

void DuoJi_Angle(float CCR);


#endif


将以上代码加入到keil

在这里插入图片描述
别忘了添加文件路径,不然编译会报错

在这里插入图片描述

主程序

接下来我们写主程序测试一下功能

加入头文件

#include "duoji.h"

在这里插入图片描述

先定义一个变量
在这里插入图片描述

开启PWM通道,注意通道标号
在这里插入图片描述
在while循环中

在这里插入图片描述

	  for(i=0;i<160;i+=20)
	  
	  
	  {

		DuoJi_Angle(i);
	  	HAL_Delay(500);
		  
		  if(i==160)
			  
		  {
		DuoJi_Angle(0);
		HAL_Delay(500);	  
			  
		  }
 
	  }

完成以上步骤就全部搞定了,快拿起示波器测试一下吧,测一下PWM引脚,看看是否有方波。友情提示,如果是直流电机的话,频率要在10KHZ。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值