M创动工坊提供mcdgf.taobao.com
- 硬件准备
STM32核心板,MT6701磁编码器带线(M创动工坊提供),ST-link,USB线等
- 软件准备
- 安装微软的Vscode,网上很多教程,且有说明书
安装好stlink驱动
- 打开vscode并安装PlatformIO插件。其他的一些中文插件、AI插件等等,根据需要安装
- 打开插件,新建工程
- 重要的设置
- 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接线:
- 编码器的A引脚接STM32板子的A4
- 编码器的B接A5
- 编码器的VCC接3V3
- 编码器的GND接GND
STM32与ST-Link接线
按STM32和ST-link的丝印接即可
STM32与USB转串口模块接线
这里使用串口2,详见程序内定义。
USB供电,microUSB接口。
到此,线已接完。
- 编程
- 开始编程
打开默认是这样的
- 按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());
}
- 编译烧录
- 插上USB,开始烧录
确定驱动安装正确,设备管理器中,可以看到这两个。
- 烧录成功
- 打开串口监视
到此,测试结束!本文档主要针对M创动工坊淘宝店提供硬件,mcdgf.taobao.com