我尝试使用libftdi来切换ft232rl上的某些引脚,然后使用常规的虚拟Com端口(/ dev / ttyUSB0)。我有一个微控制器(LPC1114)连接到FT232RL进行编程。要使其进入ISP模式,必须将一行保持为低电平进行复位,并在编程后执行代码,必须将其复位。我试图使用ft232自动执行此操作。我已经使libftdi正常工作,并且正确地切换了引脚,但是一旦程序完成,VCP就会从/ dev中消失。即使使用libftdi示例程序,我也必须拔掉USB插头并插回USB电缆,这完全违背了目的。
TL; DR:有没有办法在bitbang模式下使用libftdi而不拔掉电缆后取回/ dev / ttyUSB0。
答案 0 :(得分:0)
LibFTDI似乎在使用LibUSB。
您可以尝试使用LibUSB中的libusb_attach_kernel_driver函数来恢复/dev/ttyUSBx
功能。
答案 1 :(得分:0)
是的,在使用 libftdi 后,可以使用 libusb 和 libusb_attach_kernel_driver 函数重新连接原始驱动程序。 查看原始答案:FTDI kernel driver after using libftdi
#define DEVICE_VID 0x0403
#define DEVICE_PID 0x6015
int libftdireset() {
libusb_context * context = NULL;
libusb_device_handle * dev_handle = NULL;
int rc = 0;
rc = libusb_init( &context);
dev_handle = libusb_open_device_with_vid_pid(context, DEVICE_VID, DEVICE_PID);
/*Check if kenel driver attached*/
if (libusb_kernel_driver_active(dev_handle, 0)) {
rc = libusb_detach_kernel_driver(dev_handle, 0); // detach driver
}
libusb_reset_device(dev_handle);
libusb_attach_kernel_driver(dev_handle, 0);
libusb_close(dev_handle);
libusb_exit(context);
return 0;
}