📄 test-serial.c
字号:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include "serial.h"#include "rs485.h"#define RS485_PIO_DEV "/dev/rs485/0"static int n_com_port = 2;int main (int argc, char *argv[]){ int ret = -1; int len_tty = -1; int fd_rs485; unsigned char buf_tty[256]; if (argc > 1) { n_com_port = strtol( argv[1], NULL, 10 ); } fd_rs485 = open(RS485_PIO_DEV, O_RDWR); if (fd_rs485 < 0) { fprintf(stderr, "Error: open RS485 device, check if driver installed\n"); exit(EXIT_FAILURE); } ret = OpenComPort(n_com_port, 9600, 8, "1", 'N'); if (ret < 0) { fprintf(stderr, "Error: Opening Com Port %d\n", n_com_port); return ret; }else{ printf("Open Com Port %d Success, Now going to read port\n", n_com_port); } while(1){ ioctl(fd_rs485, RS485_SET_MODE, RS485_MODE_RECV); bzero(buf_tty, sizeof(buf_tty)); len_tty = ReadComPort(buf_tty, 255); if (len_tty < 0) { printf("Error: Read Com Port\n"); break; } if (len_tty == 0) { write(STDOUT_FILENO, ".", sizeof(".")); continue; } printf("Recv: %d bytes, [%s]\n", len_tty, buf_tty); ioctl(fd_rs485, RS485_SET_MODE, RS485_MODE_SEND); len_tty = WriteComPort(buf_tty, len_tty); WriteComPort(" recved:", sizeof(" recved:")); if (len_tty < 0) { printf("Error: WriteComPort Error\n"); } // delay 500 ms to let data transfer complete // here will cause bugs usleep(500 * 1000); ioctl(fd_rs485, RS485_SET_MODE, RS485_MODE_RECV); } CloseComPort(); printf("Program Terminated\n"); return(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -