test-serial.c

来自「这是pxa270的RS485驱动程序」· C语言 代码 · 共 79 行

C
79
字号
#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 + =
减小字号Ctrl + -
显示快捷键?