PlatformIO 目前只是玩具,单片机开发还得用 Keil

2021-04-16 20:53:41 +08:00
 villivateur

好久不碰单片机,现在想搞个项目,选型 STM32xxxxxx,想找一套“现代化”的 IDE,于是找到了 PlatformIO 。

刚开始很新奇很激动,VSCode 开发环境很友好,各种单片机型号、库很丰富,而且 STM32 可以直接用 Arduino 开发,各种一键式部署。最主要的是商用免费,差点就选用了。

但是问题很快就出现了,Arduino 框架对于底层的封装太完美,我甚至不能方便地修改 SPI 或者 I2C 的引脚,而且 GPIO 读写速度也相较使用 CMSIS 慢很多,STM32duino 虽然仍然在发展,但是,我认为还处在“玩具”的阶段。

如果抛弃 Arduino 框架,去使用 CMSIS,那也太不方便了,而且 STM32 标准库在 PlatformIO 里面目前居然只支持很少几款芯片( F10x 系列全系不支持)。如果我要用 FreeRTOS,FreeRTOS 官方目前也没有适配 PlatformIO 。

最终还是回到 Keil,花钱的才是最好的。

3321 次点击
所在节点   嵌入式开发
9 条回复
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 ?这不就是个玩具吗?
elmagnificogg
2021-04-16 21:35:21 +08:00
debug 的时候就会发现还是 keil 香
Osk
2021-04-16 21:40:21 +08:00
platformIO 确实太玩具了,

优点: 集成了库的功能, 这个我比较喜欢, 直接可以引用一些外设库, 对于我这种 API caller 来说很方便.

坑爹的地方:
这也联网, 那也联网, 关键是他对自己创建的 python 进程管理得不好, 动不动就死了, 但 python 还在后台跑着呢...
不挂代理这玩意儿基本别想轻易安装上.

而且对于非 python 用户来说, 居然还要先了解一下 python 是如何安装的. (当然, 头铁的话也可以试试他自己安装的 portable python...)
Osk
2021-04-16 21:41:51 +08:00
对了, PlatformIO 和 arduino 库没关系吧, 好像 STM32 还可以选择其他的开发框架, arduino 封装的限制和 PIO 无关
villivateur
2021-04-16 21:44:12 +08:00
@Osk 我觉得 PlatformIO 大部分文档和库都是 Arduino 的,STM32 的其他框架都是鸡肋
Zeppe1in
2021-04-16 21:53:39 +08:00
PIO 下也可以用标准库开发,但是也不好用就是了
spadger
2021-07-20 12:46:55 +08:00
PIO 何止是玩具,简直就是垃圾。连 GCC+Makefile 都不如。
villivateur
2021-07-20 13:30:13 +08:00
@spadger 如果只是玩 arduino 还是可以的
spadger
2021-07-20 14:30:33 +08:00
@villivateur 玩 Arduino 用 Arduino 自己的 IDE 就够了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX