之前提到过,在编程做Arduino Leonrado 的串口通讯时,需要特别设定打开流控制才能正常工作
经过研究发现,这是因为在 \arduino-1.8.4\hardware\arduino\avr\cores\arduino\CDC.cpp 下面的代码导致的。这段代码会检测当前的串口是否有 lineState的设定,如果没有的话,返回 False (应该是Serial就无法正常的初始化)。这段代码的初衷应该是保证从IDE刷新代码之后,直到打开串口才会执行,但是如果你并非使用IDE就会很麻烦。所以可以根据情况移除。
Serial_::operator bool() {
bool result = false;
if (_usbLineInfo.lineState > 0)
result = true;
delay(10);
return result;
}