完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
简介 对于嵌入式开发,特别是单片机(MCU)的开发而言,不想过分折腾开发工具的话,一般都会选用各个硬件厂商推荐或指定的IDE。ARM的一般就是MDK、IAR,DSP的就是CCS,ST还有自己的推出的IDE。MDK、IAR作为嵌入式IDE的两大巨头,以其界面古老、代码编辑功能孱弱经常成为CSDN博客上的槽点,但由于他们有对仿真器、编译器的支持度高,调试简单的优点,一直也保持着极大的用户粘度。 我最近手痒重新搞了一下Arduino,依然感觉Arduino IDE还是原来惨不忍睹的样子,一番搜索后发现了PlatformIO这个强大的,未来会更优秀的IDE。用了几天,虽然PlatformIO还有着各种小问题,但瑕不掩瑜,相信未来PlatformIO一定会是嵌入式IDE里面不可轻视的力量。 以下是PlatformIO的简介: Platform是一个基于VScode的插件,利用了vscode强大的扩展extension功能,使得开发者可以在vscode中直接调用gcc、jlink、gdb等进行开发、调试。 Arduino IDE的问题有:没有代码跳转、没有工程管理、无法断点调试,这些问题导致我在以前一直只能以Arduino IDE的包管理器为跳板,寻找一些优秀的第三方库(往往是C++风格),改造后再用到单片机的程序开发上。而PlatformIO把以上问题都解决了,而且包管理器更加强大,除了Jlink调试时还不算顺手外,真的没有什么可以挑剔了。 另外,PlatformIO还会默认包含Arduino的开发框架(还能另外安装ESP-IDF、STM32Cube[含HAL和LL库]等),不单止AVR,还可用于STM32、ESP32、NXP等等,野心和眼界之大并不小于MDK。 一、安装准备工作 本文只以Windows开发举例,毕竟作为传统单片机开发人士装不起Linux和MAC的逼。要安装的软件包括: 1、python(我目前的版本是3.8.5,其他文章有提过PlatformIO只支持python2的,那应该是以前的事,python2在2021年2月停止提供支持,PlatformIO目前也已经使用python3来做脚本)。 2、VScode 3、PlatformIO插件 4、科学上网的梯子(很多库只能从国外的源下载,没有一把稳定的梯子你会很痛苦,别把希望放在把库解压在指定文件夹这种招数上,一个两个库你能这么玩,PlatformIO的库多得很,库下载时的感觉就像Linux 的Update时一样) 安装教程直接上个视频,这视频是我目前找到最好最细致的安装视频了: platformIO 入门 视频链接:https://www.bilibili.com/video/BV1fh411y7DF?t=2968 看完视频后,你基本能够在Arduino Uno板上写一个demo了。 这个视频指出了一个很重要的事情:ESP8266和ESP32可以编译完直接下载程序了!回想起以前编写下载ESP程序的痛苦,感觉现在真的值了。 二、使用过程中的一些注意事项 1、一定要给pip(Python 包安装和管理工具)换成国内的更新源。 方法如下: (1)直接在user目录中创建一个pip目录,如:C:Usersxxpip,然后新建文件pip.ini,即 %HOMEPATH%pippip.ini,在pip.ini文件中输入以下内容(以清华镜像为例): [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ [install] trusted-host = https://pypi.tuna.tsinghua.edu.cn (2)安装virtualenv虚拟环境库 pip install virtualenv (3)创建virtualenv虚拟环境 virtualenv C:UsersAdministrator.platformiopenv (4)激活virtualenv虚拟环境 virtualenv C:UsersAdministrator.platformiopenvScriptsactive 2.PlatformIO 更新 (5)将PlatformIO Core安装到虚拟环境中 pip install -U platformio (6)将以下路径加入windows环境变量 C:UsersAdministrator.platformiopenvScripts (7)PIO更新 pio update 更新成功会有下图: 有问题的话,最好还是看一下官方手册: (1)https://docs.platformio.org/en/latest/core/userguide/cmd_update.html (2)https://docs.platformio.org/en/latest/integration/ide/vscode.html#ide-vscode 三、ESP32的闪灯示例代码 #include #define LED_BUILTIN 5 // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for a second } |
|
|
|
只有小组成员才能发言,加入小组>>
3320 浏览 9 评论
3000 浏览 16 评论
3497 浏览 1 评论
9069 浏览 16 评论
4090 浏览 18 评论
1190浏览 3评论
612浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2339浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 23:12 , Processed in 1.566114 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号