起初的原因是我想用arduino的库来试试能不能写stm32的程序,发现stm32是有官方支持的arduino库的。STM32duino (github.com)。这就很方便的,比目前只支持到mbed的nxp lpc不知道高到哪里去了。
首先尝试的是官方的arduino ide 。使用方法:(2条消息) STM32在ArduinoIDE环境下的开发(不同的下载方式,不同的BootLoader方式,无需BootLoader方式)_拖地僧的博客-CSDN博客。优点:官方支持,设置usb功能方便..缺点:需要你懂得上网,无法使用代码补全,函数跳转(arduino ide 2.0中stm32库没法用代码补全,我要吐槽即使官方硬件有代码补全,然而补全的提示总是挡住别的行),2.0中的debug功能没有方便的办法能调出来。(本质上ide2.0也是基于atom的,官方重写了cli)
然后发现了国产的Stduino,Stduino文档管理系统 - Powered by MinDoc。中文界面,使用的是platform io框架(以下简称pio),优点是不需技术上网,中文界面亲切,中文文档齐全。debug功能看着还可以。配合对应的开发板tduino UNO或Nano ,或者STM32小蓝板很好用。中文文档非常好。缺点:不支持函数跳转到。h声明文件里(只能跳转到定义的c文件里),函数参数补全功能没有。代码补全没有vscode强大。不过在这里还是支持国产。
然后就是个人心目中目前最好的开源嵌入式ide ::vscode+platformio,得益于vscode本身强大的编辑能力,非常丰富的插件,加上pio强大的平台支持能力,真的是非常好用,代码补全,函数参数补全,函数定义跳转,debug功能也支持。不足:pio本身是英文的,需要你懂得上网,否则安装非常慢。用stm32的usb时候需要手动配置。有些板子的debug需要自己去添加参数。教程:(2条消息) 在vscode 中用PlatformIO开发Arduino_acktomas的博客-CSDN博客,(2条消息) VSCode + PlatformIO + STM32/ESP32 ARDUINO_原初引力-CSDN博客_platformio
简单几句就实现了usb cdc功能
综合来说,看着stduino的文档用vscode+pio是最合适的方法。