传输属性就是波特率,数据位,停止位等等。
/*****************************************************/
/*************封装主机发送命令的串口属性****************/
/***************该处使用的是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");
}