PlatformIO开发环境搭建

 


简介

对于嵌入式开发,特别是单片机(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:\Users\xx\pip,然后新建文件pip.ini,即 %HOMEPATH%\pip\pip.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:\Users\Administrator\.platformio\penv

(4)激活virtualenv虚拟环境

virtualenv C:\Users\Administrator\.platformio\penv\Scripts\active

 

2.PlatformIO 更新

(5)将PlatformIO Core安装到虚拟环境中

pip install -U platformio

(6)将以下路径加入windows环境变量

C:\Users\Administrator\.platformio\penv\Scripts

(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 <Arduino.h>

 #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
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值