现象今天在给ESP32S3烧录固件之后发现一个问题
原本的检测串口是否打开的代码失效了
1while(!Serial);
原本代码会阻塞直到电脑打开串口监视器, 而现在则是一旦连接到电脑就跳出
排查过程排查后发现在HWCDC.h中对于HWCDC将运算符重载为HWCDC::isCDC_Connected(), 同时HWCDC::isConnected() 也内联到HWCDC::isCDC_Connected()
而HWCDC::isCDC_Connected() 内部的逻辑是
1234567891011121314151617181920212223242526272829bool HWCDC::isCDC_Connected() { static bool running = false; // USB 可能被拔出 if (!isPlugged()) { connected = false; running = false; // ISR中的SOF导致固件上传问题 //SOF_TIMEOUT = 5; // 拔掉时 SOF 超时 return false; ...