diff --git a/linux/main.c b/linux/main.c new file mode 100644 index 0000000..e263e57 --- /dev/null +++ b/linux/main.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include +#include + +int main() { + int fd; + struct termios options; + + // 打开 UART 设备文件 + fd = open("/dev/ttyS3", O_RDWR | O_NOCTTY | O_NDELAY); + if (fd == -1) { + perror("open_port: Unable to open UART device"); + return -1; + } + + // 配置 UART 设备参数 + tcgetattr(fd, &options); + options.c_cflag = B115200 | CS8 | CLOCAL | CREAD; + options.c_iflag = IGNPAR; + options.c_oflag = 0; + options.c_lflag = 0; + tcflush(fd, TCIFLUSH); + tcsetattr(fd, TCSANOW, &options); + + // 读取和写入 UART 数据 + char buf[128]; + //memset(buf, 0x5A, sizeof(buf)); + //write(fd, buf, 78); + //sleep(1); + int n = read(fd, buf, sizeof(buf)); + if (n > 0) { + printf("Received data: %d, %s\n", n, buf); + } + + write(fd, "Hello, UART!\n", 13); + + close(fd); + return 0; +} \ No newline at end of file