Leonardo 是基于 32U4 的,内部直接带有一个 USB Device Controller。默认情况下都会出现一个USB CDC 设备。这个设备可以通过下面的方法移除。
方法来自:https://github.com/arduino/Arduino/issues/6387
特别提醒:在试验之前请准备好硬件烧写工具,当移除USB CDC 之后,Leonardo 无法再次刷写。
具体方法是,删除 USBCore.cpp 文件中的如下代码:
// Handle CLASS_INTERFACE requests
static
bool ClassInterfaceRequest(USBSetup& setup)
{
u8 i = setup.wIndex;
//LABZ_Debug if (CDC_ACM_INTERFACE == i)
//LABZ_Debug return CDC_Setup(setup);
#ifdef PLUGGABLE_USB_ENABLED
return PluggableUSB().setup(setup);
#endif
return false;
}
static u8 SendInterfaces()
{
u8 interfaces = 0;
//LABZ_Debug CDC_GetInterface(&interfaces);
#ifdef PLUGGABLE_USB_ENABLED
PluggableUSB().getInterface(&interfaces);
#endif
return interfaces;
}