382 字
2 分钟
STM32 PlatformIO配置开发环境
前言
PlatformIO 和 VSCode 的配置参考之前的文章 合宙 ESP32-C3。
STM32 在 PlatformIO 中可以通过多种框架进行开发,这里主要用 stm32cube 和 arduino 进行演示。
开发板:STM32F103C8T6(我自己焊的),串口烧录
- VSCode:进入 PlatformIO 的页面,New Project(新建项目)
- Board:搜索并选择 STM32F103C8 (20k RAM. 64k Flash) (Generic)
- Framework:选择 STM32Cube 或 Arduino
大概项目下的 platformio.ini, 配置烧录方式为串口烧录:
[env:genericSTM32F103C8]platform = ststm32board = genericSTM32F103C8framework = arduinoupload_protocol = serial
可用的烧录方式:blackmagic, cmsis-dap, dfu, jlink, serial, stlink
stm32cube
stm32cube 框架下比较复杂,建议使用官方工具 STM32CubeMX 对引脚、时钟定义完成后生成代码,将 inc 和 src 的代码直接复制到项目中,这里只提供部分测试代码。
int main(void){ HAL_Init();
SystemClock_Config(); // 时钟定义
MX_GPIO_Init(); // 引脚定义
while (1) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); HAL_Delay(500); }}
arduino
#include <Arduino.h>
void setup() { pinMode(PC13, OUTPUT); Serial.setRx(PA10); Serial.setTx(PA9); Serial.begin(9600);}
void loop() { digitalWrite(PC13, HIGH); delay(500); digitalWrite(PC13, LOW); delay(500); Serial.println("HelloWorld!");}
总结
stm32cubeRAM: [ ] 0.2% (used 44 bytes from 20480 bytes)Flash: [ ] 4.0% (used 2652 bytes from 65536 bytes)arduinoRAM: [ ] 4.1% (used 844 bytes from 20480 bytes)Flash: [== ] 16.0% (used 10512 bytes from 65536 bytes)
比较 stm32cube 和 arduino 的项目大小,两者差异很明显。
arduino 在简化编程方式并高度封装的同时,增加了大量代码,arduino 还是更加适合产品初期的开发,如果要考虑缩减硬件成本和提高性能就需要使用 stm32cube。
学生党做项目还是优先考虑 arduino,成本控制的问题还是让老板发愁吧…
STM32 PlatformIO配置开发环境
https://fuwari.vercel.app/posts/嵌入式/stm32/stm32-platformio配置开发环境/