⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-serial.c

📁 这是pxa270的RS485驱动程序
💻 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 + -