ESP32 C3 Super Mini 用 C# 读取串行线后重置

问题描述 投票:0回答:1

我想使用 C# Windows 窗体应用程序读取串行数据。数据通过 ESP32 C3 Super Mini 发送。当我使用 Arduino IDE 中的串行监视器时,一切正常。

如果我使用 C# 应用程序(

serialPort1.ReadLine();
serialPort1.ReadExisting();
)读取串行数据,我将仅获取一次数据,然后 ESP 会重置,原因如下:
rst:0x15 (USB_UART_CHIP_RESET),boot:0xc (SPI_FAST_FLASH_BOOT)

C# 代码

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    lblState1.Invoke(new MethodInvoker(ProcessData1));
}

private async void ProcessData1()
{
    //MessageBox.Show(serialPort1.ReadLine());
    MessageBox.Show(serialPort1.ReadExisting());
}

Arduino 代码

unsigned long last_time = 0;

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    // Print a heartbeat
    if (millis() > last_time + 2000)
    {
        Serial.println("Arduino is alive!!");
        last_time = millis();
    }
}

几天前,该应用程序运行良好。当我将新程序上传到 ESP32 后,我遇到了这个问题并且无法修复它。

编辑

DtrEnable 和 RtsEnable 设置为 false。

c# serial-port esp32
1个回答
0
投票

只需拔掉 Arduino 的插头,问题就在一夜之间得到了解决。感谢@kunif 的帮助。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.