我在网络指南中搜索了Android设备和C程序通过USB端口的串行通信,但我没有发现什么特别之处。有人知道我该如何实现这种沟通?
我并没有真正搜索Android项目串行通信的指南,而是通过串行数据发送或接收,允许我从终端读取或发送。
编辑我试图搜索更多,但我找不到任何特别的内容。
我注意到当我通过usb连接三星Galaxy SII plus时,我找到了
的/ dev / ttyACM0
的/ dev / ttyACM1
这可能与我的手机有关(读写流?),因为当SII没有连接时它们就不存在了。我通过Play Story下载了一个串行监视器应用程序,并创建了这个简单的程序,将一些基本文本发送到我的手机:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
int open_port(void);
int main(void) {
fprintf(stderr, "Starting reading serial port... ");
int port = open_port();
fprintf(stderr, "%d... [DONE]\n", port);
return 0;
}
int open_port(void) {
int fd, n; /* File descriptor for the port */
fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1) {
perror("open_port: Unable to open /dev/ttyS0 - ");
} else {
fcntl(fd, F_SETFL, 0);
}
n = write(fd, "ATZ", 3);
if (n < 0) {
fputs("write() of 4 bytes failed!\n", stderr);
}
return (fd);
}
写数据时没有什么失败,但我的手机什么也没有收到!