我正在编写一些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,这看起来是一样的。
任何人都有一些想法?谢谢。
答案 0 :(得分:2)
好吧,串口不像任何文件。您必须在文件上设置一组控件,以便正确设置它(记住奇偶校验/速度等等?)。您可以使用termios
设置执行此操作,这是stackoverflow上的第一个结果:
我不得不修补原始项目中的一些内容以使其在OSX上运行,它可能对您有用。
要打开tty chardev,你不应该使用cat,它只会输出尽可能快的东西(在最好的情况下输出什么都没有,在最坏的情况下会扰乱你的终端)。相反,你应该使用:
minicom
(但使用/配置有点奇怪)screen /dev/tty.usbmodem1411 115200
python -m serial.tools.miniterm /dev/tty.usbmodem1411 115200