Arduino Leonardo 移除USB CDC 的方法

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;
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注