使用Apple的FTDI驱动程序可以使用4mb(B4000000)的波特率吗?或者FTDI的VCP驱动程序更好?
在termios.h(*)中定义了高达B230400的速度,每个速度被定义为与其速度匹配的整数(与Linux不同)。但是,简单的hack #define B4000000 4000000
不起作用。
我记得大约5年前(在Apple提供驱动程序之前)使用FTDI使用FTDI的VCP驱动程序并使用FTDIUSBSerialDriver.kext/Contents/Info.plist
进行其中一个"允许&#34 ;速度(如B2400)由驱动程序别名为4mb。这仍然是推荐的方法吗? (我想这需要使用sudo nvram kext-dev-mode=1
来禁用kext安全性。)
我正在使用这样的波特率,其中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
答案 0 :(得分:1)
我记得大约5年前(以前可以使用4MB和FTDI) Apple提供了一个使用FTDI的VCP驱动程序和黑客的驱动程序 FTDIUSBSerialDriver.kext / Contents / Info.plist来制作其中一个 &#34;允许&#34;速度(如B2400)由驱动程序别名为4mb。这是 还是推荐的方法? (我想这需要禁用 kext安全性,使用sudo nvram kext-dev-mode = 1。)
我怀疑这是唯一的方法。 Apple驱动程序非常基础(几年前它甚至不支持CTS / RTS信号),我也没有看到任何指定非标准波特率的方法。看起来FTDI Info.plist
仍然支持这些波特率配置选项。