STM32CubeIDE学习笔记——使用HAL库PWM输出驱动舵机

这篇具有很好参考价值的文章主要介绍了STM32CubeIDE学习笔记——使用HAL库PWM输出驱动舵机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

PWM驱动简介

工程配置

代码编写

这里我采用的是STM32F103C8T6最小系统板,SG-90舵机实现功能。

PWM驱动简介

舵机驱动角度和PWM占空比有关系,具体对应为50--0度  150--90度  250--180度,通过STM32的定时器功能输出PWM波来控制舵机进行转动。

工程配置

 时钟选择外部高速时钟

stm32f103 hal pwm,STM32CubeIDE,stm32,单片机,学习

系统映射配置

stm32f103 hal pwm,STM32CubeIDE,stm32,单片机,学习

时钟树设为为72HZ频率,2分频

stm32f103 hal pwm,STM32CubeIDE,stm32,单片机,学习

 选择定时器2通道4为PWM输入模式,设置对应引脚

stm32f103 hal pwm,STM32CubeIDE,stm32,单片机,学习

 由于我们时钟频率为72HZ,所以预分频为720-1=719,设置装载初值为2000-1=2199,则对应pwm占空比与舵机控制占空比即可对应为50——0度   150——90度  250——180度

stm32f103 hal pwm,STM32CubeIDE,stm32,单片机,学习

代码编写

工程配置完后代码中需开启定时器

  /* USER CODE BEGIN 2 */
  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);
  /* USER CODE END 2 */

 之后封装一个舵机转动度数与PWM占空比对应函数即可

/* USER CODE BEGIN 4 */
void Servo_Control(uint16_t angle)   //参数为舵机转动角度 0-180
 {
    float temp;
    temp =angle/9*10+50 ;
    __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, (uint16_t )temp);
 }
/* USER CODE END 4 */

在While(1)函数中直接使用对应舵机控制函数即可。文章来源地址https://www.toymoban.com/news/detail-635505.html

到了这里,关于STM32CubeIDE学习笔记——使用HAL库PWM输出驱动舵机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 F103C8T6学习笔记5:定时器输出不同占空比PWM驱动舵机旋转角度

    现在学习使用STM32 F103C8T6的定时器PWM模式,使用PWM驱动舵机转动不同角度,文章提供源码,测试工程,测试动态效果图。 目录 基础原理:  实验目标: 测试视频结果: 测试工程下载: 这次依旧拿出之前学习过的舵机DS3115,它的基础原理不多加介绍,在往期讲MSP432的文章有所

    2024年02月13日
    浏览(20)
  • STM32 HAL库 Timer(定时器)+DMA输出PWM底层配置过程学习

    本文使用的芯片型号是STM32G030,写本文的目前是想记录学习下Timer借助DMA生成可变占空比PWM时的底层配置过程。 使用TIM1,配置就只改了图上的配置,系统时钟用的16M,分频选择15(16-1),自动重装载寄存器ARR选择999(1000-1),那么生成的就是1kHz的PWM,这里为什么要减1,因为这俩是

    2024年04月09日
    浏览(35)
  • STM32基于CubeIDE和HAL库 基础入门学习笔记:物联网项目开发流程和思路

    文章目录: 第一部分:项目开始前的计划与准备 1.项目策划和开发规范  1.1 项目要求文档 1.2 技术实现文档 1.3 开发规范 2.创建项目工程与日志 第二部分:调通硬件电路与驱动程序 第三部分:编写最基础的应用程序 第四部分:完成最终要求、反复调试 第五部分:程序优化、

    2024年02月13日
    浏览(15)
  • STM32-HAL库04-PWM输出

    所用材料: STM32F103C6T6(最小系统板) STM32cubemx(HAL库软件) MD5(编程软件) 示波器(DS100) 本节所学内容: 通过TIM2定时器输出500HZ频率的PWM波; 修改部分参数实现PWM波频率的改变; 第一步-新建工程 1.选择MCU-F103C6Tx 第二步-SYS设置 将DEBUG选线设置为Serial Wire 第三步-RCC设置

    2023年04月08日
    浏览(19)
  • STM32 HAL库多路PWM没有输出踩坑记录

      之前只弄过单路的,这次想用4路PWM,CUBE里面一顿配置,生成,然后套用之前的代码: 这算是开启第一路了,心想后面无非就复制几条,改下通道的事了,无意中点了下TIM_CHANNEL_1,进头文件看看: 看到TIM_CHANNEL_ALL时,眼前一亮,连续开启1、2、3、4怎么都显得不够优雅,于

    2024年02月20日
    浏览(15)
  • 用STM32CubeMX配置输出PWM信号控制多路舵机(HAL)

    (1)编程平台:Keil5 (2)CubeMX (1)本此使用最小核心板STM32F103C8T6为例 (2)一个舵机:SG90或者MG996等均可 (3)ST-link 下载器 (4)杜邦线若干         舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度

    2023年04月09日
    浏览(15)
  • HAL库STM32常用外设教程(一)—— 定时器 输出PWM

    本篇文章为个人参考总结所用,如果错误还望指出。 涉及的知识: 1、STM32CubeMx的部分使用 2、PWM原理及常用概念 3、用单片机生成一定频率的PWM 用到的软件及单片机: 1、STM32CubeMx 2、IDE: MDK-Keil软件 3、芯片:STM32F407ZGT6 4、开发板:正点原子探索者 注:不同型号的单片机实现

    2024年02月02日
    浏览(26)
  • STM32-HAL库08-TIM的输出比较模式(输出PWM的另一种方式)

    STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 示波器或者逻辑分析仪 通过定时器TIM的输出比较模式得到预定频率与占空比的PWM波形;其中定时器输出比较模式与PWM模式的区别在于!!! PWM模式在同一个TIM下所有输出口的频率一致不能单独控制单个的频率 ,而输出比较模式

    2024年02月03日
    浏览(23)
  • 10、江科大stm32视频学习笔记——PWM驱动led呼吸灯、驱动舵机、驱动直流机

    目录 一、PWM驱动LED呼吸灯(灯接在PA0) 1、PWM波和GPIO的对应关系参考引脚定义表 2、计数器的计算 3、TIM输出PWM波使用步骤​编辑 4、代码 (1)输出化比较单元 (2) PWM.c (3)main.c 5、重映射更换成PA15亮灯 二、PWM驱动舵机(舵机接在PA1、按键在PB1)  1、电路图 2、参数计算

    2024年02月14日
    浏览(18)
  • 【STM32学习】——定时器输出比较功能&PWM脉宽调制&通用/高级定时器输出比较通道&舵机/直流电机简介&PWM驱动呼吸灯/舵机/直流电机代码实操

    声明:学习笔记根据b站江科大自化协stm32入门教程编辑,仅供学习交流使用!

    2024年02月03日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包