3.使用Visual Stuido Code+PlatformIO IDE开发Arduino

简述

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

安装Visual Stuido Code PlatformIO

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

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

测试

  • 选择New Project创建工程,选择相应的Board,我这里使用Mega2560,输入2560找到对应的Board
  • 修改main.cpp
#include <Arduino.h>

void setup() {
    pinMode(13, OUTPUT);
}

void loop() {
    digitalWrite(13, HIGH);
    delayMicroseconds(1000);
    digitalWrite(13, LOW);
    delay(1000);
}
  • 编译与下载
    • 同样左下角有一堆按钮1240
      选择upload即可完成下载,指示灯也可以正常闪烁,可以看到我们连端口都没有选择就完成了下载的工作,非常方便。

      问题与高级功能

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

      include <Arduino.h>

      include <TimerOne.h>

void setup() {
Timer1.initialize(40);
}

void loop() {
Timer1.pwm(11, 512);
}

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

lib_deps = TimerOne
```
选择编译按钮编译,我们可以看到输出信息1240

找到了TimerOne库并下载至.piolibdeps文件夹下

注意点

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

motor.h

#ifndef TEST_MOTOR_H_
#define TEST_MOTOR_H_

class Motor{
    public:
        void init(unsigned char fre);
        void pwm(unsigned short);
};
#endif

motor.cpp

#include "motor.h"
#include "TimerOne.h"

void Motor::init(unsigned char fre) {
    Timer1.initialize(1000.0/fre);
}
void Motor::pwm(unsigned short val) {
    Timer1.pwm(11,val);
}

main.cpp

#include <Arduino.h>
#include <motor.h>
Motor motor1;
void setup() {
    motor1.init(15);
}

void loop() {
    motor1.pwm(512);
}
  • 编译完成,提示找不到TimerOne.h头文件1240,可以看到Library Dependency Graph没有TimerOne
  • 两种解决方法
  1. main.cpp include头文件TimerOne.h,这个比较low,英文main中根本就没有使用到TimerOne
    2.之前的办法添加lib_deps = TimerOne

总结

至此可以看到,使用VSCode集成的PlatformIO IDE插件开发与查看arduino的代码都非常方便

转载于:https://www.cnblogs.com/pibot/articles/8021718.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Visual Studio Code使用 PlatformIO IDEArduino ESP32 来控制淘晶驰触摸屏 TJC8048X543 并绘制正弦波形,需要进行以下步骤: 1. 安装 PlatformIO IDE 和 ESP32 开发环境。 2. 连接 ESP32 和 TJC8048X543 触摸屏,可以参考官方文档或者其他教程。 3. 在 PlatformIO IDE 中创建一个新的项目。 4. 在 platformio.ini 文件中添加 ESP32 的开发板支持和 TFT_eSPI 库的依赖,例如: ``` [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = Adafruit GFX Library TFT_eSPI ``` 5. 在 src 目录中创建一个新的文件,例如 main.cpp。 6. 在代码中引入 TFT_eSPI 库和 Adafruit_GFX 库,这些库可以通过 platformio.ini 文件中的依赖自动安装。 7. 在代码中定义波形参数和屏幕尺寸。 8. 在 setup() 函数中初始化 TFT_eSPI 库和屏幕。 9. 在 loop() 函数中绘制正弦波形,可以使用 sine() 函数计算正弦值,再将坐标映射到屏幕上。 10. 上传代码到 ESP32,观察屏幕上的正弦波形。 以下是一个简单的代码示例,可以根据自己的需求进行修改: ```c++ #include <TFT_eSPI.h> #include <Adafruit_GFX.h> #define SCREEN_WIDTH 480 #define SCREEN_HEIGHT 800 TFT_eSPI tft = TFT_eSPI(); void setup() { tft.begin(); tft.setRotation(1); tft.fillScreen(TFT_BLACK); } void loop() { float x, y; int i; int sineWave[SCREEN_WIDTH]; for (i = 0; i < SCREEN_WIDTH; i++) { x = (float)i / SCREEN_WIDTH * 2 * PI; y = sin(x); sineWave[i] = (int)((y + 1) / 2 * SCREEN_HEIGHT); } tft.fillScreen(TFT_BLACK); for (i = 0; i < SCREEN_WIDTH - 1; i++) { tft.drawLine(i, sineWave[i], i + 1, sineWave[i + 1], TFT_WHITE); } delay(10); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值