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

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

MySQL zip安装包配置教程

《MySQLzip安装包配置教程》这篇文章详细介绍了如何使用zip安装包在Windows11上安装MySQL8.0,包括下载、解压、配置环境变量、初始化数据库、安装服务以及更改密码等步骤,感兴趣的朋... 目录mysql zip安装包配置教程1、下载zip安装包:2、安装2.1 解压zip包到安装目录2.2

Java使用Tesseract-OCR实战教程

《Java使用Tesseract-OCR实战教程》本文介绍了如何在Java中使用Tesseract-OCR进行文本提取,包括Tesseract-OCR的安装、中文训练库的配置、依赖库的引入以及具体的代... 目录Java使用Tesseract-OCRTesseract-OCR安装配置中文训练库引入依赖代码实

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.