STM32读取MT6701磁编码器(M创动工坊)

M创动工坊提供mcdgf.taobao.com

  • 硬件准备

STM32核心板,MT6701磁编码器带线(M创动工坊提供),ST-link,USB线等

  • 软件准备
  1. 安装微软的Vscode,网上很多教程,且有说明书

安装好stlink驱动

  1. 打开vscode并安装PlatformIO插件。其他的一些中文插件、AI插件等等,根据需要安装

  1. 打开插件,新建工程

  1. 重要的设置

  1. Ini文件设置,这是关键

lib_deps =

        askuric/Simple FOC@ 2.3.4

board_build.mcu = stm32f103c6t6

board_upload.maximum_size = 32768

upload_protocol = stlink

debug_tool = stlink

build_flags = -Os

写好后,记得点保存,就开始自动下载库,右下角

设置到这里就结束了。

  • 接线

根据程序定义,接线

编码器与STM32接线:

  1. 编码器的A引脚接STM32板子的A4
  2. 编码器的B接A5
  3. 编码器的VCC接3V3
  4. 编码器的GND接GND

STM32与ST-Link接线

按STM32和ST-link的丝印接即可

STM32与USB转串口模块接线

这里使用串口2,详见程序内定义。

USB供电,microUSB接口。

到此,线已接完。

  • 编程
  1. 开始编程

打开默认是这样的

  1. 按arduino格式,写入以下代码,代码就不做注释了,可以直接复制粘贴到AI,如DEEPSEEK上,让它帮忙逐行解析。
  • 实现

#include <Arduino.h>

#include <HardwareSerial.h>

#include <SimpleFOC.h>

Encoder encoder = Encoder(PA4, PA5, 1024);

// interrupt routine intialisation

void doA(){encoder.handleA();}

void doB(){encoder.handleB();}

void setup() {

  // monitoring port

  Serial2.begin(115200);

  // enable/disable quadrature mode

  encoder.quadrature = Quadrature::ON;

  // check if you need internal pullups

  encoder.pullup = Pullup::USE_EXTERN;

 

  // initialise encoder hardware

  encoder.init();

  // hardware interrupt enable

  encoder.enableInterrupts(doA, doB);

  Serial.println("Encoder ready");

  _delay(1000);

}

void loop() {

  // iterative function updating the sensor internal variables

  // it is usually called in motor.loopFOC()

  // not doing much for the encoder though

  encoder.update();

  // display the angle and the angular velocity to the terminal

  Serial2.print(encoder.getAngle());

  Serial2.print("\t");

  Serial2.println(encoder.getVelocity());

}

  1. 编译烧录

  1. 插上USB,开始烧录

确定驱动安装正确,设备管理器中,可以看到这两个。

  1. 烧录成功

  1. 打开串口监视

到此,测试结束!本文档主要针对M创动工坊淘宝店提供硬件,mcdgf.taobao.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M创动工坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值