当前位置:   article > 正文

ESP32开发学习(VS Code) ---- PlatformIO环境搭建

platformio

Visual Studio Code插件PlatformIO IDE开发ESP32

概述

  • 本文介绍如何使用VScode 直接开发Arduino 程序,避免使用Arduino IDE时的没有代码提示功能,文件关系不清晰、头文件打开不方便等问题及使用Visual Stdio集成插件的庞大安装工程;同时Visual Studio Code插件PlatformIO IDE开发Arduino 跨平台无论你是用的windows,ubuntu或者mac都可以玩转。

安装Visual Studio Code PlatformIO

  • https://code.visualstudio.com/页面下载安装vscode.

  • 安装完成vscode启动,扩展页面下搜索platformio即可找到,选择第一个Platformio IDE,安装即可(这里需要耐心等待一会)

  • 安装完成,重新加载后,左下角会多一个logo图标,点击后即可显示Platformio IDE主页

测试

  • 选择New Project创建工程,选择相应的Board,我这里使用DOIT ESP32 DEVKIT V1,输入ESP32找到对应的Board
  • 选择Framework是Arduino,选择保存路径,等待工程完成需要一点时间.
  • 完成,打开工程文件夹,修改main.cpp

  1. #include <Arduino.h>
  2. void setup() {
  3. // put your setup code here, to run once:
  4. pinMode(32, OUTPUT);
  5. }
  6. void loop() {
  7. // put your main code here, to run repeatedly:
  8. digitalWrite(32, HIGH); // turn the LED on (HIGH is the voltage level)
  9. delay(1000); // wait for a second
  10. digitalWrite(32, LOW); // turn the LED off by making the voltage LOW
  11. delay(1000);
  12. }
  • 编译与下载

  • 同样左下角有一堆按钮
  • 选择upload即可完成下载,GPIO32引脚电平翻转,可以看到我们连端口都没有选择就完成了下载的工作,PlatformIO IDE自动扫描串口设备,非常方便。

问题与高级功能

arduino IDE有库管理功能,可以下载到需要的库。这里就会很方便,例如我们想使用TimerOne输出PWM,

  1. #include <Arduino.h>
  2. #include <TimerOne.h>
  3. void setup() {
  4. Timer1.initialize(40);
  5. }
  6. void loop() {
  7. Timer1.pwm(11, 512);
  8. }

Arduino IDE我们会这样写,然库管理搜索下载TimerOne库,在这里我们只需要在配置文件platformio.ini加上下面一句即可

lib_deps = TimerOne

选择编译按钮编译,我们可以看到输出信息

找到了TimerOne库并下载至C:\Users\Administrator\.platformio\lib文件夹下

注意点

  • 接上面我们也可以把下载好的TimerOne库直接放置在lib目录下,也就无需添加lib_deps。
  • 我们不想在main里面直接使用TimerOne的pwm,我们想自己写一个motor库,motor库会使用到TimerOne

motor.h

  1. #ifndef TEST_MOTOR_H_
  2. #define TEST_MOTOR_H_
  3. class Motor{
  4. public:
  5. void init(unsigned char fre);
  6. void pwm(unsigned short);
  7. };
  8. #endif

motor.cpp

  1. #include "motor.h"
  2. #include "TimerOne.h"
  3. void Motor::init(unsigned char fre) {
  4. Timer1.initialize(1000.0/fre);
  5. }
  6. void Motor::pwm(unsigned short val) {
  7. Timer1.pwm(11,val);
  8. }

main.cpp

  1. #include <Arduino.h>
  2. #include <motor.h>
  3. Motor motor1;
  4. void setup() {
  5. motor1.init(15);
  6. }
  7. void loop() {
  8. motor1.pwm(512);
  9. }
  • 编译完成,提示找不到TimerOne.h头文件

,可以看到Library Dependency Graph没有TimerOne

  • 两种解决方法
    1. main.cpp include头文件TimerOne.h,这个比较low,英文main中根本就没有使用到TimerOne
    2. 之前的办法添加lib_deps = TimerOne

总结

至此可以看到,使用VSCode集成的PlatformIO IDE插件开发与查看arduino的代码都非常方便,编译和上传速度远比Arduino IDE块很多,工程目录和库文件结构又清晰。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/217765
推荐阅读
相关标签
  

闽ICP备14008679号