STM32CubeIDE自平衡小车教程5.直流电机转速开环控制

本文主要是介绍STM32CubeIDE自平衡小车教程5.直流电机转速开环控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.打开上一节的文件,进入我们上一小节修改过的文件夹,找到并打开.cproject 文件,双击.ioc 文件,双击打开工程。

2.在左侧 Pinout&Configuration 界面中的 Timers 下拉中点击TIM2,然后在TIM2 Mode and Configuration Mode中将Channel3 选择为 PWM Generation CH3;将Channel4 选择为 PWM Generation CH4

3.在下方的参数设置选项卡中将 Prescaler 设为 72,即预分频系数(TIMx_PSC)设为 72Counter Period 设为 100,即计数周期(自动加载值 TIMx_ARR)设为 100Pulse 设为 100,即占空比设置为 100%

4.在右侧界面的芯片中分别点击 PB12PB13PB14PB15,并将其配置为 GPIO_Output

5. System Core 下拉菜单中选择 GPIO,然后在左侧的System Core 下拉菜单中选择 GPIO,然后在 GPIO Mode and Configuration 中对 PB12PB13PB14PB15 引脚进行配置。

 

6. GPIO output level代表 GPIO 默认输出电平,在这里设置为低电平;GPIO mode 代表 GPIO 引脚模式,在这里设置为推挽输出;GPIO Pull-up/Pull-down GPIO 上拉或下拉,在这里设置为既不上拉也不下拉;Maximum output speed 最大输出速度,在这里设置为低速。(默认设置即可)

User Label 即用户标签,在这里将PB12 改为 BIN2PB13 改为 BIN1; PB14 改为 AIN1PB15 改成AIN2

7.点击生成代码,打开工程左侧 gpio.c 源文件,双击打开,可以看到HAL_GPIO_Init() 函数里面已经有BIN1_Pin|BIN2_Pin 的相关初始化代码。

8.在  /* USER CODE BEGIN 2 */ 和   /* USER CODE END 2 */ 中加入以下代码

  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//开启 TIM2_CH3 的 PWM 输出HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);//开启 TIM2_CH4 的 PWM 输出HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_SET);//初始化BIN1引脚为低电平(左 轮)HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);//初始化 BIN2 引脚为高电平(左轮)HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_SET);//初始化 AIN1 引脚为低电平(右轮)HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_RESET);//初始化 AIN2 引脚为高电平(右轮)__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 100);//控制小车转速(右轮)__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 100);//控制小车转速(左轮)

其中 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 100)里的100是用来控制PWM占空比的大小的。在配置IOC文件时,我们设置的最大PWM值为100,如果需要调整转速,可以设置0~100的PWM数值来控制车轮转速。

 9.点击编译烧录,开启小车电源开关,完成转速的开环控制。

STM32CubeIDE直流电机转速开环控制效果展示

这篇关于STM32CubeIDE自平衡小车教程5.直流电机转速开环控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/178131

相关文章

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制