好久不碰单片机,现在想搞个项目,选型 STM32xxxxxx,想找一套“现代化”的 IDE,于是找到了 PlatformIO 。
刚开始很新奇很激动,VSCode 开发环境很友好,各种单片机型号、库很丰富,而且 STM32 可以直接用 Arduino 开发,各种一键式部署。最主要的是商用免费,差点就选用了。
但是问题很快就出现了,Arduino 框架对于底层的封装太完美,我甚至不能方便地修改 SPI 或者 I2C 的引脚,而且 GPIO 读写速度也相较使用 CMSIS 慢很多,STM32duino 虽然仍然在发展,但是,我认为还处在“玩具”的阶段。
如果抛弃 Arduino 框架,去使用 CMSIS,那也太不方便了,而且 STM32 标准库在 PlatformIO 里面目前居然只支持很少几款芯片( F10x 系列全系不支持)。如果我要用 FreeRTOS,FreeRTOS 官方目前也没有适配 PlatformIO 。
最终还是回到 Keil,花钱的才是最好的。
1
mason961125 2021-04-16 21:22:17 +08:00
用 Keil/IAR 这种集成开发环境肯定是最省心的,啥啥都有,就是 UI 老了点,高分屏容易糊。
如果想更加 现代 一点,VSCode + OpenOCD 交叉编译其实也还行,但是中间可能会踩点坑,比如 gdb 的工作目录设置错误,2017 年到现在还没修 https://github.com/microsoft/vscode-cpptools/issues/815 。不过 CubeMX 现在生成的 Makefile 工程也挺方便的,不至于以前标准库手撸一切初始化了。 如果既要 现代 又要 省心,那么可以选 CLion,其实就是在 IDEA 的基础上把 OpenOCD 和那一套交叉编译的工具整合进去了,也没什么大的问题,配合 cmake 其实体验非常不错。 至于 PlatformIO ?这不就是个玩具吗? |
2
elmagnificogg 2021-04-16 21:35:21 +08:00 via Android
debug 的时候就会发现还是 keil 香
|
3
Osk 2021-04-16 21:40:21 +08:00 2
platformIO 确实太玩具了,
优点: 集成了库的功能, 这个我比较喜欢, 直接可以引用一些外设库, 对于我这种 API caller 来说很方便. 坑爹的地方: 这也联网, 那也联网, 关键是他对自己创建的 python 进程管理得不好, 动不动就死了, 但 python 还在后台跑着呢... 不挂代理这玩意儿基本别想轻易安装上. 而且对于非 python 用户来说, 居然还要先了解一下 python 是如何安装的. (当然, 头铁的话也可以试试他自己安装的 portable python...) |
4
Osk 2021-04-16 21:41:51 +08:00 1
对了, PlatformIO 和 arduino 库没关系吧, 好像 STM32 还可以选择其他的开发框架, arduino 封装的限制和 PIO 无关
|
5
villivateur OP @Osk 我觉得 PlatformIO 大部分文档和库都是 Arduino 的,STM32 的其他框架都是鸡肋
|
6
Zeppe1in 2021-04-16 21:53:39 +08:00 via iPhone
PIO 下也可以用标准库开发,但是也不好用就是了
|
7
spadger 2021-07-20 12:46:55 +08:00
PIO 何止是玩具,简直就是垃圾。连 GCC+Makefile 都不如。
|
8
villivateur OP @spadger 如果只是玩 arduino 还是可以的
|
9
spadger 2021-07-20 14:30:33 +08:00
@villivateur 玩 Arduino 用 Arduino 自己的 IDE 就够了
|