无法在Mac上打开tty usb端口文件或su usb端口文件

时间:2013-06-18 00:30:15

标签: c macos serial-port arduino tty

我正在编写一些C代码来从arduino获取消息,而我正在使用的端口是tty.usbmodem1411,它可以很好地将代码刻录到arduino板上。 但是,在编写C代码时

#include <sys/types.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>

int main(){
    int fd = open("/dev/tty.usbmodem1411", O_RDWR);
    printf("open\n");

这段代码可以编译,但在运行时,甚至无法显示“打开”。 该计划停留在开放的路线上。

我使用命令chmod 777和chown和chgrp来更改文件的权限,但它仍然不起作用。而且我也不能使用命令

cat /dev/tty.usbmodem1411

它刚刚封锁,什么也没发生。我已经在线检查并将端口更改为cu.usbmodem1411,这看起来是一样的。

任何人都有一些想法?谢谢。

1 个答案:

答案 0 :(得分:2)

好吧,串口不像任何文件。您必须在文件上设置一组控件,以便正确设置它(记住奇偶校验/速度等等?)。您可以使用termios设置执行此操作,这是stackoverflow上的第一个结果:

是不是。这是一个简单的代码,我在一段时间内修复了闪存串行设备:

我不得不修补原始项目中的一些内容以使其在OSX上运行,它可能对您有用。

要打开tty chardev,你不应该使用cat,它只会输出尽可能快的东西(在最好的情况下输出什么都没有,在最坏的情况下会扰乱你的终端)。相反,你应该使用:

  • minicom(但使用/配置有点奇怪)
  • screen /dev/tty.usbmodem1411 115200
  • python -m serial.tools.miniterm /dev/tty.usbmodem1411 115200