1.工具

  1. USB-TTL(非常便宜,几块钱)
  2. STM32F103C8T6(几块钱)

2.引脚连线

USB-TTLSTM32
TXPA10
RXPA9
VCC3.3V
GNDGND

注意事项:

  1. 跳线帽位置:BOOT0接高电平(1),BOOT1接低电平(0)
  2. 每次上传程序前需要按一下复位键(之后,跳线帽的位置不需要改变,程序即可正常运行),否则会可能出现下面这种情况:

3.开发环境搭建

  1. 在Vscode中下载platformio插件:


2. 新建工程


3.注意事项:第一次新建工程时,速度会特别慢,因此可以直接添加我已经下载好的资源包,放到自己的电脑相应位置中即可,这样第一次新建工程时速度就会非常快,不过第一次上传程序时仍然会自动下载一些依赖(比如下载工具,这个不用管会自动进行下载,速度很快)

4.工程配置

在platformio.ini文件中需要添加以下代码(注意根据自己的串口进行修改)

[env:genericSTM32F103C8]platform = ststm32board = genericSTM32F103C8framework = arduinoupload_port = COM17monitor_port = COM17upload_protocol = serial

5.测试程序

注意事项:

  1. 由于stm32的调试串口是非Arduino标准定义的,因此需要使用SoftwareSerial库。
  2. 串口调试:经过测试,串口波特率只能设置为9600,设置其他数值无法进行串口打印调试
// 示例1:点灯测试程序#include #define ledPin PC13void setup(){pinMode(ledPin, OUTPUT);}void loop(){digitalWrite(ledPin, HIGH);delay(500);digitalWrite(ledPin, LOW);delay(500);}// // 示例程序2:串口调试// #include // #include // 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);// }