• ESP32学习记录 PICO DK 踩坑记录


    ESP32 PICO DK 踩坑记录

    前言

    1. 在某宝上采购了一块稚晖君设计的esp32测试开发板。
    2. 板子非常迷你,屏幕十分炫酷。
    3. 与ESP32 NODE MCU不同,在烧板子的过程中踩了大坑,费了3小时。
    4. 使用PS绘图,经过转换成数组放到板子上一直显示不对,最后还是完美解决了问题。

    ESP32 PICO Dk

    1. 软件烧录

    1. 直接连上type-c数据线,在Vs Code Platformio 上进行程序烧录时,在进行串口连接时就会显示连接不上,连接超时。
    2. 虽然有时候玄学就连上了,但一直不知道是什么原因。。。
    3. 后来翻遍了CSDN,没找到直接有效的方法。。。
    4. 再后来,终于找到一个博主分享,说下载的时候使IO0 = 0,然后重启,进入下载模式;使IO0 = 1,重启进入工作模式。
    5. 开始不太理解。。然后当我使用杜邦线将IO0与GND相连后,RESET复位重启,程序一下子就下载进去了。下载完就把杜邦线拔掉,再次重启就可以了,程序正常运行。
    6. 而这简单的方法,竟给我狠狠上了一课,因为其他的板子都很少需要这样复杂操作的,真的累了。

    烧录连线

    2. 0.78寸 OLED 图像显示

    1. 使用PS创建128x80 72ppf 的图片,可以添加文字,如下图。
    在这里插入图片描述
    2. 使用Image2lcd将图片转成C语言数组

    1. 128x80的竖屏OLED,还是使用128x80的宽高,且水平扫描,使我多想了…也弄了好久才成功了。。。

    在这里插入图片描述
    3. 程序烧录

    1. 最后的效果就是这样,程序文末附上,真是太难了…

    图片显示

    3. 程序

    1. 板载MPU6050,所以也加上了相应的驱动程序,图片作为开机前奏

    #include 
    #include 
    #include 
    #include 
    #include 
    
    Adafruit_MPU6050 mpu;
    
    #define LED_PIN 27
    Ticker blinker;
    U8G2_SH1107_128X80_F_HW_I2C u8g2(U8G2_R1, /* reset=*/U8X8_PIN_NONE, /* clock=*/22, /* data=*/21);
    
    const unsigned char gImage_pico[1280] = { /* 0X20,0X01,0X80,0X00,0X50,0X00, */
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0XC0,0XFF,0X81,0X0F,0XF0,0X3F,0XE0,0X3F,0X00,0XC0,0XFF,0X03,0X7C,0XF8,0X03,
    0X00,0XC0,0XFF,0X87,0X0F,0XFC,0X3F,0XF8,0XFF,0X00,0XC0,0XFF,0X0F,0X7C,0XF8,0X03,
    0X00,0XC0,0XFF,0X87,0X0F,0XFE,0X3F,0XFC,0XFF,0X00,0XC0,0XFF,0X1F,0X7C,0XFC,0X00,
    0X00,0XC0,0XFF,0X87,0X0F,0XFF,0X3F,0XFE,0XFF,0X01,0XC0,0XFF,0X1F,0X7C,0X7E,0X00,
    0X00,0XE0,0XC7,0XC7,0X8F,0X7F,0X30,0X7F,0XF8,0X01,0XE0,0XC7,0X3F,0X7E,0X3F,0X00,
    0X00,0XE0,0XC3,0XC7,0X87,0X1F,0X00,0X3F,0XF0,0X01,0XE0,0X03,0X3F,0XBE,0X1F,0X00,
    0X00,0XE0,0XC3,0XC7,0XC7,0X0F,0X80,0X1F,0XF0,0X01,0XE0,0X03,0X3F,0XFE,0X0F,0X00,
    0X00,0XE0,0XE3,0XC7,0XC7,0X07,0X80,0X0F,0XF0,0X03,0XE0,0X03,0X3E,0XFE,0X07,0X00,
    0X00,0XE0,0XF3,0XC7,0XC7,0X07,0X80,0X0F,0XF0,0X03,0XE0,0X03,0X3E,0XFE,0X03,0X00,
    0X00,0XE0,0XFF,0XC3,0XE7,0X07,0XC0,0X0F,0XF0,0X01,0XE0,0X03,0X3F,0XFE,0X03,0X00,
    0X00,0XF0,0XFF,0XE1,0XE3,0X07,0XC0,0X0F,0XF0,0X01,0XF0,0X01,0X3F,0XFF,0X07,0X00,
    0X00,0XF0,0XFF,0XE0,0XE3,0X07,0XC0,0X0F,0XF8,0X01,0XF0,0X01,0X1F,0XFF,0X07,0X00,
    0X00,0XF0,0X1F,0XE0,0XE3,0X07,0XC0,0X0F,0XF8,0X01,0XF0,0X81,0X1F,0XDF,0X0F,0X00,
    0X00,0XF0,0X01,0XE0,0XE3,0X07,0XC0,0X0F,0XFC,0X00,0XF0,0XC1,0X0F,0XDF,0X0F,0X00,
    0X00,0XF0,0X01,0XE0,0XC3,0X1F,0X8E,0X1F,0X7E,0X00,0XF0,0XF1,0X0F,0X9F,0X1F,0X00,
    0X00,0XF0,0X01,0XE0,0XC3,0XFF,0X8F,0XFF,0X7F,0X00,0XF0,0XFF,0X07,0X9F,0X1F,0X00,
    0X00,0XF8,0X00,0XF0,0XC1,0XFF,0X07,0XFF,0X3F,0X00,0XF8,0XFF,0X83,0X0F,0X3F,0X00,
    0X00,0XF8,0X00,0XF0,0X81,0XFF,0X07,0XFF,0X1F,0X00,0XF8,0XFF,0X80,0X0F,0X7F,0X00,
    0X00,0XF8,0X00,0XF0,0X01,0XFE,0X07,0XFC,0X07,0X00,0XF8,0X3F,0X80,0X0F,0X7E,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7F,0X00,
    0X00,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7F,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XC0,0X7F,0XF8,0XE1,0X0F,0XF8,0X01,0X1F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XC0,0X7F,0XFE,0XE3,0X3F,0XFC,0XC3,0X3F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XC0,0X7F,0XFF,0XE3,0X7F,0XFC,0XC3,0X7F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XE0,0X3F,0XFF,0XF3,0X7F,0XCC,0XE3,0X7D,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XE0,0X01,0X0F,0XF0,0X78,0XC0,0X63,0X78,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XE0,0X01,0X1F,0XF0,0X78,0XE0,0X03,0X7C,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XE0,0X1F,0X7F,0XF0,0X7C,0XFC,0X03,0X3E,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XE0,0X1F,0XFF,0XF0,0X3F,0XFC,0X01,0X3F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XE0,0X1F,0XFE,0XF1,0X3F,0XFC,0XC3,0X1F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XF0,0X00,0XF8,0XF9,0X0F,0XE0,0XE3,0X07,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XF0,0X00,0XF0,0X79,0X00,0XC0,0XF3,0X03,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XF0,0XC0,0XF1,0X79,0X00,0XE3,0XF3,0X01,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XF0,0XDF,0XFF,0X78,0X00,0XFF,0XF9,0X1F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XF0,0XDF,0XFF,0X78,0X80,0XFF,0XF8,0X1F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0XF0,0XDF,0X3F,0X78,0X80,0X7F,0XF8,0X1F,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X80,0X07,0X0E,0X00,0X00,0X00,0X0E,0X00,0X00,0X00,0XE0,0X01,0XC0,0X03,0X00,
    0X00,0X00,0X07,0X0E,0X00,0X00,0X00,0X07,0X00,0X00,0X00,0XF8,0X03,0XE0,0X07,0X00,
    0X00,0X00,0X07,0X07,0X00,0X00,0X00,0X02,0X00,0X00,0X00,0X98,0X07,0X70,0X0F,0X00,
    0X00,0X00,0X07,0X07,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X04,0X07,0X38,0X0E,0X00,
    0X00,0X00,0X87,0X83,0X07,0X37,0X3E,0X07,0X1F,0XEE,0X01,0X00,0X07,0X18,0X0E,0X00,
    0X00,0X00,0X87,0XC1,0X0F,0XBF,0X1F,0X87,0X3F,0XFE,0X03,0X80,0X03,0X1C,0X0E,0X00,
    0X00,0X00,0XC6,0XE1,0X1C,0XFF,0X11,0XC3,0X79,0XCE,0X03,0XC0,0X03,0X1C,0X0E,0X00,
    0X00,0X00,0XCE,0X70,0X9C,0XC7,0X81,0XE3,0X70,0X87,0X03,0XE0,0X01,0X1C,0X0E,0X00,
    0X00,0X00,0XEE,0XF0,0X9F,0XC3,0X87,0XE3,0X70,0X87,0X01,0X78,0X00,0X1C,0X07,0X00,
    0X00,0X00,0X6E,0XF0,0X9F,0X83,0X9F,0X63,0X70,0XC7,0X01,0X3C,0X00,0X1C,0X07,0X00,
    0X00,0X00,0X7E,0X38,0X80,0X03,0X9C,0X73,0X70,0XC7,0X01,0X1E,0X00,0X1C,0X07,0X00,
    0X00,0X00,0X3E,0X70,0X88,0X23,0X9C,0XE3,0X38,0XC7,0X01,0X0E,0X30,0X9C,0X03,0X00,
    0X00,0X00,0X3C,0XF0,0X87,0XE1,0X8F,0XE1,0X1F,0XC3,0X01,0XFF,0X79,0XFC,0X01,0X00,
    0X00,0X00,0X1C,0XE0,0XC7,0XE1,0XC7,0XC1,0X8F,0XC3,0X01,0XFF,0X39,0XF8,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
    };
    
    
    
    static char mac_address[18];
    
    /**
     * @brief 快速图片显示调用函数
     * 
     * @param time 时间设置
     * @param gImage 图片指针
     */
    void display(int time, const unsigned char* gImage){
      int count = 0;
      u8g2.firstPage();
      while(true){
        count++;
        if(count > time){
          break;
        }
        do {
          u8g2.drawXBM(0, 0, 128, 80, gImage);
        } while (u8g2.nextPage());
      }
    }
    
    void blink()
    {
        digitalWrite(LED_PIN, !digitalRead(LED_PIN));
    }
    
    const char *get_mac_address(void)
    {
        static uint8_t _mac_array_ap[6];
        static char _mac_char_ap[18];
    
        WiFi.macAddress(_mac_array_ap);
        for (int i = 0; i < sizeof(_mac_array_ap); ++i)
        {
            sprintf(_mac_char_ap, "%s%02x", _mac_char_ap, _mac_array_ap[i]);
        }
        return _mac_char_ap;
    };
    
    void refresh_display(sensors_event_t gyroscope)
    {
        u8g2.clearBuffer();
        u8g2.setCursor(0, 15);
        u8g2.print("MAC:");
        u8g2.print(mac_address);
        u8g2.setCursor(0, 40);
        u8g2.print("ESP32-PicoDK"); // Chinese "Hello World"
        u8g2.setCursor(0, 65);
        u8g2.print(gyroscope.gyro.x, 1);
        u8g2.print(", ");
        u8g2.print(gyroscope.gyro.y, 1);
        u8g2.print(", ");
        u8g2.print(gyroscope.gyro.z, 1);
        u8g2.println("");
        u8g2.sendBuffer();
    }
    
    void mpu_init(void)
    {
        static uint8_t retry = 50;
        static uint8_t retry_itv = 100;
        
        u8g2.clearBuffer();
        u8g2.setCursor(0, 15);
        u8g2.print("MPU Init... ");
        u8g2.print(retry / 10);
        u8g2.print(" s");
        u8g2.sendBuffer();
    
        while (!mpu.begin(0x69, &Wire1))
        {
            if (retry <= 0)
            {
                Serial.println("MPU Sensor init failed");
                Serial.println("Reboot...");
                u8g2.clearBuffer();
                u8g2.setCursor(0, 15);
                u8g2.print("MPU Init Failed");
                u8g2.setCursor(0, 40);
                u8g2.print("Reboot..."); // Chinese "Hello World"
                u8g2.sendBuffer();
                delay(1000);
                ESP.restart();
            }
            if (retry % 10 == 0)
            {
                u8g2.clearBuffer();
                u8g2.setCursor(0, 15);
                u8g2.print("MPU Init... ");
                u8g2.print(retry / 10);
                u8g2.print(" s");
                u8g2.sendBuffer();
            }
    
            retry--;
            delay(retry_itv);
        }
    }
    
    void setup()
    {
    
        pinMode(LED_PIN, OUTPUT);
        // digitalWrite(LED_PIN, LOW);
        blinker.attach_ms(500, blink);
        u8g2.begin();
        u8g2.enableUTF8Print();                     // enable UTF8 support for the Arduino print() function
        u8g2.setFont(u8g2_font_unifont_t_chinese2); // use chinese2 for all the glyphs of "你好世界"
        u8g2.setFontDirection(0); // 转向
        
        Serial.begin(115200);
    
        display(1000, gImage_pico);
    
        Serial.println("\r\n\r\n");
    
        Serial.println("------------------------------------------");
        Serial.println("|          MPU6050 + OLED Demo           |");
        Serial.println("------------------------------------------");
    
        Wire1.begin(32, 33);
        Wire1.setClock(400000);
    
        strcpy(mac_address, get_mac_address());
    
        delay(200);
    
        Serial.printf("\r\nESP32 Chip model = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision());
        Serial.printf("This chip has %d cores\n", ESP.getChipCores());
        Serial.printf("Chip Mac Address = %s  \n", mac_address);
    
        Serial.println("\r\n\r\n");
    
        mpu_init();
        Serial.println("Found a MPU-6050 sensor");
    
        blinker.detach();
        blinker.attach_ms(100, blink);
    
        delay(500);
    }
    
    void loop()
    {
        sensors_event_t a, g, temp;
        mpu.getEvent(&a, &g, &temp);
    
        Serial.print("Accelerometer ");
        Serial.print("X: ");
        Serial.print(a.acceleration.x, 1);
        Serial.print(" m/s^2, ");
        Serial.print("Y: ");
        Serial.print(a.acceleration.y, 1);
        Serial.print(" m/s^2, ");
        Serial.print("Z: ");
        Serial.print(a.acceleration.z, 1);
        Serial.println(" m/s^2");
    
        Serial.print("Gyroscope ");
        Serial.print("X: ");
        Serial.print(g.gyro.x, 1);
        Serial.print(" rps, ");
        Serial.print("Y: ");
        Serial.print(g.gyro.y, 1);
        Serial.print(" rps, ");
        Serial.print("Z: ");
        Serial.print(g.gyro.z, 1);
        Serial.println(" rps");
    
        refresh_display(g);
    
        delay(1);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
  • 相关阅读:
    MongoDB常用命令总结及安装介绍
    绘制同心圆-第12届蓝桥杯Scratch省赛1真题第3题
    Hutool 工具类之日期时间工具-DateUtil mysql日期字段
    学习java第七十四天
    使用Mybatis调整Db2的cfg
    [每周一更]-(第18期):Postman全局配置token信息,加速测试接口进度
    【EI检索会议】第四届智能电网与能源工程国际研讨会(SGEE 2023)
    Codeforces Round #813 (Div. 2)A.B.C
    计算机毕业设计Java酒店信息管理(源码+系统+mysql数据库+lw文档)
    通过 while循环体对远程主机进行遍历性ssh登录并执行目标指令
  • 原文地址:https://blog.csdn.net/Code_peasant/article/details/126066953