STMF103C8T6的舵机转动教程

前情提要

对于市面上的舵机,所要求的周期基本都为20ms。

对应的转动角度,0°->0.5ms,180°->2.5ms

CubeMX配置单片机

1.通用配置

首先就是设置高速时钟,选择第三个。

然后就是设置Debug模式了,这里是serial wire 模式,一般我们就用STLINK进行调试烧录就行了。当然了STM32也有无线烧录器,但是太贵了,我买不起(bushi)。

2.时钟设置

首先是设置时钟频率,直接设置最大72MHZ就好了,这里时钟频率越大,单片机的运算速率也就越大,所以我们在使用F1或者其他种类的单片机时,当然是单片机的运算速率越快越好。

时钟源选择内部时钟 Internal clock 。我们这里pwm输出引脚就选择Channel1吧,如图进行设置,然后可以在右图单片机的示意图中看到PA8点亮了。所以PA8引脚就是TIM1的CH1的输出引脚,当然一个引脚常常是有多种功能的,此处就不过多展开了。

再看后续的PSC(预分频系数)与ARR(自动重载值)

我们要求舵机转动的周期为20ms也就是50HZ

那么f=72000000/(PSC+1)*(ARR+1)   这里72000000就是前面设置的72MHZ了。

那么如何理解PSC和ARR呢?

PSC就相当于将原本的72M分为PSC+1份,ARR就是吧PSC又分了为ARR+1份;

3.其他设置

单片机的开发一般主流为KEIL 或者说配套的cubeIDE 或者说小众的Clion.

对于toolchain第一种软件要选择MDK-ARM,后两者就选择CubeIDE

注意:项目名只能是英文,不能有空格

在设置时最好将头文件与代码主题分离,便于后续大项目的操作,或者“借鉴他人代码”。

代码解释与占空比的理解

这里作者使用HAL库进行开发。

HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1)开启时钟;

__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,15)设置引脚输出电压;

占空比就位这个函数最后一个整数值15/200,此时占空比就位7.5%。

即占空比=x/ARR,那么前面说的0°对应的0.5ms又是什么呢?

就是计数器的周期(1/f)乘以占空比。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值