ESP32使用vscode调试配置

launch.json

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "GDB",
        "type": "cppdbg",
        "request": "launch",
        "MIMode": "gdb",
        "miDebuggerPath": "${command:espIdf.getXtensaGdb}",
        "program": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
        "windows": {
          "program": "${workspaceFolder}\\build\\${command:espIdf.getProjectName}.elf"
        },
        "cwd": "${workspaceFolder}",
        "environment": [{ "name": "PATH", "value": "${config:idf.customExtraPaths}" }],
        "setupCommands": [
          { "text": "target remote :3333" },
          { "text": "set remote hardware-watchpoint-limit 2"},
          { "text": "mon reset halt" },
          { "text": "thb app_main" },
          { "text": "flushregs" }
        ],
        "externalConsole": false,
        "logging": {
          "engineLogging": true
        }
      }
    ]
}

settings.json  

{
    "C_Cpp.intelliSenseEngine": "Tag Parser",
    "idf.flashType": "UART",						//接口类型必须为JTAG
    "idf.adapterTargetName": "esp32",
    "idf.portWin": "COM10",						//替换成自己的串口
    "idf.openOcdConfigs": [
        "interface/jlink.cfg",
        "target/esp32.cfg"
    ],
    "terminal.integrated.defaultProfile.windows": "Windows PowerShell",
    "files.associations": {
        "sdkconfig.h": "c",
        "led_strip.h": "c",
        "gpio.h": "c"
    }
}

先执行 (也可以跟下面的颠倒,具体的看实际情况)

然后运行

### 实现 ESP32VSCode 中通过屏幕显示图片 要在 VSCode 开发环境中实现 ESP32 的屏幕显示功能,通常需要借助支持图形显示的硬件模块(如 LCD 或 OLED 屏幕),利用相应的库来处理图像数据。以下是详细的说明: #### 1. **环境准备** 为了在 VSCode 中开发 ESP32 项目,需完成以下准备工作: - 安装 ESP-IDF 工具链以便编译和调试代码[^1]。 - 配置VSCode 插件 `espressif.idf` 来管理工具链和构建流程。 #### 2. **硬件需求** 要实现屏幕显示图片的功能,需要一块带有 SPI 接口的支持图形显示的屏幕,例如 ILI9341 控制器驱动的 TFT-LCD 屏幕。该屏幕可以通过 SPI 协议连接到 ESP32 用于显示图片或其他图形内容。 #### 3. **依赖库** 可以使用第三方库 `TFT_eSPI` 提供对 TFT-LCD 屏幕的支持。此库封装了底层硬件接口,提供了绘制线条、矩形、文字以及加载 BMP 图像等功能。具体安装方法如下: - 下载 `TFT_eSPI` 库文件将它放置于 Arduino IDE 的 libraries 文件夹下(如果使用 PlatformIO,则可以直接通过平台管理器安装)。 - 如果您正在使用纯 C/C++ 编程而非基于 Arduino 框架,请手动移植这些函数至您的工程目录中。 #### 4. **示例代码** 下面是一个简单的示例代码片段,演示如何读取存储在闪存中的 BMP 格式的图片通过 TFT-LCD 进行渲染: ```cpp #include <TFT_eSPI.h> // Include the library header file // Initialize a new instance of the TFT class with default pin configuration. TFT_eSPI tft = TFT_eSPI(); void setup() { Serial.begin(115200); // Begin initialization process for the display driver IC (ILI9341). tft.init(); // Set background color to black before drawing anything on screen. tft.fillScreen(TFT_BLACK); // Load and draw an image from internal flash memory at address 0x80000 as example.bmp format. uint32_t startAddr = 0x80000; int w, h; bool success = tft.readBitmap(startAddr, &w, &h); if (!success){ Serial.println("Failed to load bitmap!"); }else{ Serial.printf("Image loaded successfully! Width=%d Height=%d\n", w,h ); // Draw the decoded image onto the center position of the screen. tft.pushImage((tft.width()-w)/2,(tft.height()-h)/2,w ,h,startAddr ); } } void loop(){ } ``` 上述代码实现了从指定地址处加载一幅位图资源将其居中呈现在显示屏上的基本逻辑[^2]。 #### 注意事项 - 上述代码假设目标设备已经具备足够的外部Flash空间用来保存静态资产;实际应用当中可能还需要考虑动态分配内存等问题。 - 对于其他类型的图像格式转换成BMP或将它们嵌入固件镜像的操作则超出了本文讨论范围。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值