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 = ststm32board = genericSTM32F103C8framework = arduinoupload_port = COM17monitor_port = COM17upload_protocol = serial
5.测试程序
注意事项:
- 由于stm32的调试串口是非Arduino标准定义的,因此需要使用SoftwareSerial库。
- 串口调试:经过测试,串口波特率只能设置为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);// }