📄 serial.c
字号:
/***************************** * 串口通信程序 *****************************/// ./serial -d 1 -v 115200 8N1N#include <stdio.h>#include <string.h>#include <sys/types.h>#include <errno.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <termios.h>#include <stdlib.h>#include "akiserial.h"#define BUFSIZE 128int main(int argc, char *argv[]){ int fd; int nread,i; char buff[BUFSIZE]={0}; char commNumber,commParity,commStopbits,commFlowcontrol; int commSpeed,commDatabits; char param_cache[4]={0}; for (i = 1; i < argc; i++) { if (argv[i] == NULL || *argv[i] == 0 || *argv[i] != '-') { continue; } if (strcmp (argv[i], "-d") == 0) { if (i + 1 >= argc) { printf ("No parameter specified with -d\n"); exit (-1); } commNumber = atoi(argv[i+1]); } if (strcmp (argv[i], "-v") == 0) { if (i + 1 >= argc) { printf ("No parameter specified with -v\n"); exit (-1); } commSpeed = atoi(argv[i+1]); strncpy(param_cache,argv[i+2],4); commDatabits=Hex2Char(param_cache[0]); commParity=param_cache[1]; commStopbits=Hex2Char(param_cache[2]); commFlowcontrol=param_cache[3]; } if (strcmp (argv[i], "-h") == 0) { printf("\n"); printf("usage: serial [-d -v] [-i inputfile]\n"); printf("\n"); printf("-d 1 Serial device (1:COM1, 2:COM2, 3:COM3, ...)\n"); printf("-v 115200 8N1N\n"); printf(" [115200] Bits per second (2400, 4800, 9600, 115200, 460800)\n"); printf(" [8] Data bits (5,6,7,8)\n"); printf(" [N] Parity check (O:Odd, E:Even, N:None)\n"); printf(" [1] Stop bits (1, 1.5, 2)\n"); printf(" [N] Flow control(N:None, H:hard, X:Xon/Xoff)\n\n"); printf("-i test.txt Input file name(.txt)\n"); exit (0); } } if((fd=open_port(fd,commNumber))<0) { perror("open_port error"); return; } if((i=set_opt(fd,commSpeed,commDatabits,commParity,commStopbits))<0) { perror("set_opt error"); return; } printf("fd=%d\n",fd); while(1) { bzero(buff,BUFSIZE); nread=read(fd,buff,BUFSIZE); printf("nread=%d,%s\n",nread,buff); printf("Input data:"); bzero(buff,BUFSIZE); scanf("%s",&buff); write(fd,buff,strlen(buff)); //sleep(1); } close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -