LINUX_RS232/RS485通信

LINUX_RS232/RS485通信

#include <stdio.h>
#include <pthread.h>
#include “RS485.h”

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
#include <linux/serial.h>
#include <sys/ioctl.h>
#include <sys/utsname.h>
#include <stdint.h>

/**

  • @brief: set the properties of serial port
  • @Param: fd: file descriptor
  • @Param: nSpeed: Baud Rate
  • @Param: nBits: character size
  • @Param: nEvent: parity of serial port
  • @Param: nStop: stop bits
    */

typedef enum {DISABLE = 0, ENABLE} RS485_ENABLE_t;

int Set_Uart(int fd, int nSpeed, int nBits, char nEvent, int nStop)
{
struct termios newtio, oldtio;

memset(&oldtio, 0, sizeof(oldtio));
/* save the old serial port configuration */
if(tcgetattr(fd, &oldtio) != 0) {
	perror("set_port/tcgetattr");
	return -1;
}

memset(&newtio, 0, sizeof(newtio));
/* ignore modem control lines and enable receiver */
newtio.c_cflag = newtio.c_cflag |= CLOCAL | CREAD;// 开启读取模式和本地连接模式
newtio.c_cflag &= ~CSIZE;// 数据位掩码
/* set character size */
switch (nBits) {
	case 8:
		newtio.c_cflag |= CS8;// 8个数据位
		break;
	case 7:
		newtio.c_cflag |= CS7;
		break;
	case 6:
		newtio.c_cflag |= CS6;
		break;
	case 5:
		newtio.c_cflag |= CS5;
		break;
	default:
		newtio.c_cflag |= CS8;
		break;
}
/* set the parity */ 
switc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mason辘轳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值