(一)初始化串口传输属性

传输属性就是波特率,数据位,停止位等等。

/*****************************************************/
/*************封装主机发送命令的串口属性****************/
/***************该处使用的是RFID模块*******************/
/*****************************************************/
void init_tty(int fd)
{
	// 1、准备串口属性设置结构体
	struct termios new_termios;
	bzero(&new_termios, sizeof (new_termios));
	// 2、将串口属性设置为默认属性
	//cfmakeraw(&termios_new);

	// 2、设置串口属性为只收发数据
	new_termios.c_cflag |= CLOCAL | CREAD;

	// 3、比特率设置
	cfsetispeed(&new_termios, B9600);    // 接收波特率 
    cfsetospeed(&new_termios, B9600);    // 发送波特率

    // 4、设置数据位
    new_termios.c_cflag &= ~CSIZE;
	new_termios.c_cflag |= CS8; 

	// 5、设置奇偶校验   这里不需要奇偶校验
	new_termios.c_cflag &= ~PARENB;

	// 5、设置奇校验
	// new_termios.c_cflag |= (PARODD | PARENB);
    // new_termios.c_iflag |= INPCK;
    
    //5、设置偶校验
    // new_termios.c_cflag |= PARENB;
    // new_termios.c_cflag &= ~PARODD;	
    // new_termios.c_iflag |= INPCK;  
      
	// 6、设置停止位
	new_termios.c_cflag &= ~CSTOPB;

	// 7、设置等待时间以及最小接收数据量
	new_termios.c_cc[VTIME] = 0;
	new_termios.c_cc[VMIN] = 1;

	// 8、设置接收刷新缓冲,立即刷新输入输出缓冲
	tcflush (fd, TCIFLUSH);

	// 9、配置串口属性立即生效
	if(tcsetattr(fd, TCSANOW, &new_termios))
		printf("Setting the serial1 failed!\n");
}

猜你喜欢

转载自blog.csdn.net/qq_41985711/article/details/82986758