1.工具
- USB-TTL(非常便宜,几块钱)
- STM32F103C8T6(几块钱)
2.引脚连线
USB-TTL | STM32 |
---|---|
TX | PA10 |
RX | PA9 |
VCC | 3.3V |
GND | GND |
注意事项:
- 跳线帽位置:BOOT0接高电平(1),BOOT1接低电平(0)
- 每次上传程序前需要按一下复位键(之后,跳线帽的位置不需要改变,程序即可正常运行),否则会可能出现下面这种情况:
3.开发环境搭建
- 在Vscode中下载platformio插件:
2. 新建工程
3.注意事项:第一次新建工程时,速度会特别慢,因此可以直接添加我已经下载好的资源包,放到自己的电脑相应位置中即可,这样第一次新建工程时速度就会非常快,不过第一次上传程序时仍然会自动下载一些依赖(比如下载工具,这个不用管会自动进行下载,速度很快)
4.工程配置
在platformio.ini文件中需要添加以下代码(注意根据自己的串口进行修改)
[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = arduino
upload_port = COM17
monitor_port = COM17
upload_protocol = serial
5.测试程序
注意事项:
- 由于stm32的调试串口是非Arduino标准定义的,因此需要使用SoftwareSerial库。
- 串口调试:经过测试,串口波特率只能设置为9600,设置其他数值无法进行串口打印调试
// 示例1:点灯测试程序
#include <Arduino.h>
#define ledPin PC13
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
// // 示例程序2:串口调试
// #include <Arduino.h>
// #include <SoftwareSerial.h>
// const byte txPin = PA9;
// const byte rxPin = PA10;
// SoftwareSerial mySerial(rxPin, txPin);
// static int i = 0;
// void setup()
// {
// pinMode(rxPin, INPUT);
// pinMode(txPin, OUTPUT);
// mySerial.begin(9600);
// }
// void loop(){
// mySerial.println(i++);
// delay(500);
// }