江科大stm32视频学习笔记——TIM输出比较:PWM驱动LED呼吸灯&舵机&直流电机

目录

一、输出比较简介

OC(Output Compare)

PWM简介

输出比较模式

二、硬件简介

2.1 舵机简介

2.2 直流电机及驱动简介 

三、 PWM驱动LED呼吸灯&舵机&直流电机

3.1 PWM驱动LED呼吸灯

3.1.1 PWM.c

3.1.2 main.c

3.1.3 bug调试

3.1.4 实验现象

3.2 PWM驱动舵机

3.2.1 PWM.c

3.2.2 Servo.c

3.2.3 main.c

 3.2.4 说明

3.3 PWM驱动直流电机

3.3.1 Motor.c

3.3.2 main.c

3.3.3 bug调试


一、输出比较简介

OC(Output Compare)

  • 摘要:输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
  • 每个通用定时器和高级定时器都拥有4个输出比较通道
  • 高级定时器的前3个通道额外拥有死区生成和互补输出的功能

PWM简介

  • PWM(Pulse Width Modulation)脉冲宽度调制
  •  在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
  • PWM参数
    频率:f = 1 / T_{S}             占空比:D = T_{ON} / T_{S}           分辨率 = 占空比变化步距

通用定时器
  • 工作原理:
  • 当CNT>CCR1,或者CNT=CCR1时,就会给输出模式控制器一个信号,然后输出模式控制器就会改变它输出OC1REF的高低电平

输出比较模式

  • 红框中两种模式只作用一次,不适合输出连续变化的波形
  • 主要使用两种PWM模式,可用于输出频率和占空比都可调的PWM波形

  • PWM频率:     Freq = CK_PSC / (PSC + 1) / (ARR + 1)
  • PWM占空比:  Duty = CCR / (ARR + 1)
  • PWM分辨率:  Reso = 1 / (ARR + 1)
高级定时器

二、硬件简介

2.1 舵机简介

  • 舵机是一种根据输入PWM信号占空比来控制输出角度的装置
  • 输入PWM信号要求:周期为20ms,高电平宽度为0.5 ~ 2.5ms
  • 带电机的多是大功率设备,有条件最好独立供电,如果不能,要注意电源功率是否能达标。单独供电的话,要和STM32共地。

### 关于苏科技大学STM32舵机课程设计、实验及案例 在探讨苏科技大学关于STM32舵机结合的教学资源时,可以发现该校注重实践教学,在多个学科领域引入了STM32作为主要开发平台之一。具体到舵机控制方面: #### 1. 教学大纲中的体现 在学校发布的自动化类专业以及电子信息工程专业的培养方案中提到,学生需掌握嵌入式系统的原理及其应用技术,而STM32正是这类系统的重要组成部分[^2]。 #### 2. 实验室建设情况 为了支持上述理论学习,学校建立了专门的嵌入式系统实验室,配备了多种型号的STM32单片机及相关外围设备,其中包括用于驱动不同种类电机(含舵机)所需的硬件设施[^3]。 #### 3. 具体项目实例分析 以某次创新实践活动为例,有团队利用STM32实现了对多自由度机械臂上各个关节处安装的小型直流减速齿轮马达——即通常所说的“舵机”的精准操控。通过编写C语言程序来调整PWM波形参数从而改变输出角度,并借助串口通信实现远程指令发送功能[^4]。 ```c // 设置 PWM 输出频率和占空比函数定义 void setServoAngle(uint8_t angle){ TIM_OCInitTypeDef sConfigOC; // 计算对应的角度对应的计数值 uint16_t compareValue = (angle * 20 / 18) + 5; htim->Instance->ARR = 999; // 自由运行模式下自动重装载寄存器设置周期值 sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = compareValue; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&htim, &sConfigOC, CHANNEL); } ``` 此代码片段展示了如何配置定时器通道以生成适合特定品牌舵机使用的PWM信号,进而达到精确调节其转动位置的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值