文档详情

linux下串口程序实例.docx

发布:2021-01-23约3.3千字共4页下载文档
文本预览下载声明
#include stdio.h /*标准输入输出定义*/ #include stdlib.h /*标准函数库定义*/ #include unistd.h /*Unix 标准函数定义*/ #include sys/types.h /**/ #include sys/stat.h /**/ #include fcntl.h /*文件控制定义*/ #include termios.h /*PPSIX 终端控制定义*/ #include errno.h /*错误号定义*/ /***@brief 设置串口通信速率 *@param fd 类型 int 打开串口的文件句柄 *@param speed 类型 int 串口速度 *@return void*/ int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300, B38400, B19200, B9600, B4800, B2400, B1200, B300, }; int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600, 4800, 2400, 1200, 300, }; void set_speed(int fd, int speed) { int i; int status; struct termios Opt; tcgetattr(fd, Opt); for ( i= 0; i sizeof(speed_arr) / sizeof(int); i++) { if (speed == name_arr[i]) { tcflush(fd, TCIOFLUSH); cfsetispeed(Opt, speed_arr[i]); cfsetospeed(Opt, speed_arr[i]); status = tcsetattr(fd, TCSANOW, Opt); if (status != 0) perror(tcsetattr fd1); return; } tcflush(fd,TCIOFLUSH); } } /** *@brief 设置串口数据位,停止位和效验位 *@param fd类型 int 打开的串口文件句柄* *@param databits 类型 int 数据位 取值 为 7 或者 8* *@param stopbits 类型 int 停止位 取值为 1 或者 2* *@param  parity  类型  int  效验类型 取值为 N,E,O,,S */ int set_Parity(int fd,int databits,int stopbits,int parity) { if  struct termios options; ( tcgetattr( fd,options)  !=  0) { perror(SetupSerial 1); return(FALSE); } options.c_cflag = ~CSIZE; switch (databits) /*设置数据位数*/ { case 7: options.c_cflag |= CS7; break; case 8: options.c_cflag |= CS8; break; default: fprintf(stderr,Unsupported data size\n); return (FALSE); } switch (parity) { case n: case N: options.c_cflag = ~PARENB; options.c_iflag = ~INPCK;  /* Clear parity enable */ /* Enable parity checking */ break; case o: case O: options.c_cflag |= (PARODD | PARENB); /* 设置为奇效验 */ options.c_iflag |= INPCK;  /* Disnable parity checking */ break; case e: case E: options.c_cflag |= PARENB; options.c_cflag = ~PARODD; options.c_iflag |= INPCK;  /* Enable parity */ /* 转换为偶效验*/ /* Disnable parity checking */ break; case S: case s: /*as no parity*/ options.c_cflag =
显示全部
相似文档