2017-02-28 126 views
0

是否可以在Apple的FTDI驅動程序中使用4mb的波特率(B4000000)?或者FTDI的VCP驅動程序更好?如何在OSX上使用波特率爲4mb的FTDI?

速度高達B230400在termios.h(*)中定義,每個速度被定義爲匹配其速度的整數(與Linux不同)。但是,簡單的破解#define B4000000 4000000不起作用。

我記得在5年前(在蘋果提供了一個驅動程序之前)使用4MB的FTDI,使用FTDI的VCP驅動程序,並且盜號FTDIUSBSerialDriver.kext/Contents/Info.plist使其中一個「允許」速度(如B2400)被別名爲4mb驅動程序。這仍然是推薦的方法嗎? (我想這將需要禁用的kext安全性,sudo nvram kext-dev-mode=1

我使用的波特率這樣,在serBaudRate是一樣的東西B2400或(理想)B4000000

if ((fd = open(serPortName, O_RDWR)) < 0) { perror("aborting"); return; } 
tcgetattr(fd, &tty);       /* get attributes */ 
cfsetospeed(&tty, (speed_t) serBaudRate);  /* output speed */ 
cfsetispeed(&tty, (speed_t) serBaudRate);  /* input speed */ 
tcsetattr(fd, TCSANOW, &tty);     /* set attributes */ 

(*)的完整路徑是/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/termios.h

回答

1

我記得能夠在5年前使用4MB與FTDI使用FTDI的VCP驅動程序和黑客 FTDIUSBSerialDriver( 之前蘋果提供的驅動程序) .kext/Contents/Info.plist,以使驅動程序將「允許」的速度(如B2400)設爲 。這個 仍然是推薦的方法嗎? (我想這將需要禁用 內核擴展的安全性,使用sudo NVRAM KEXT-DEV-MODE = 1)。

我懷疑這是做到這一點的唯一途徑。 Apple驅動程序非常基礎(幾年前它甚至不支持CTS/RTS信號),我也沒有看到任何指定非標準波特率的方式。看起來FTDI Info.plist仍然支持這些波特率配置選項。