STM32智能小车第二章 PWM调速

举报
yd_274589494 发表于 2023/07/25 11:31:23 2023/07/25
1.1k+ 0 0
【摘要】 @TOC 前言 一、PMW调速电机原理当没有进行配置PWM时默认PWM输出100%,所以此时小车的速度达到最大,调节PWM的占空比可以让小车的速度改变。 二、cubeMX配置上篇文章讲到了PB0和PB1是控制左右电机转速的,所以我们只需要在之前的基础上将PB0和PB1设置为PWM模式即可。 三、代码解析在原来的Moto.c和Moto.h里面添加下面代码即可Moto.cextern TIM_H...

@TOC


前言

一、PMW调速电机原理

当没有进行配置PWM时默认PWM输出100%,所以此时小车的速度达到最大,调节PWM的占空比可以让小车的速度改变。

二、cubeMX配置

上篇文章讲到了PB0和PB1是控制左右电机转速的,所以我们只需要在之前的基础上将PB0和PB1设置为PWM模式即可。
在这里插入图片描述

三、代码解析

在原来的Moto.c和Moto.h里面添加下面代码即可
Moto.c

extern TIM_HandleTypeDef htim3;

/*
函数功能:小车速度初始化
*/
void Speed_Init(void)
{
  HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);
  HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_4);
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, 850);
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, 850);
}

/*
函数功能:小车速度设置
Speed:小车速度
*/
void Speed_set(u16 Speed)
{
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3,Speed);
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4,Speed);
}

Moto.h

void Speed_Init(void);
void Speed_set(u16 Speed);

总结

基于上篇文章让小车动起来这篇文章使用了PWM去改变小车的速度,大家有什么疑问可以留言或者私信。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。