LINUX下延时
#include <sys/select.h>
void sleep_ms(unsigned int secs)
{
struct timeval tval;
tval.tv_sec=secs/1000;
tval.tv_usec=(secs*1000)%1000000;
select(0,NULL,NULL,NULL,&tval);
}
linux设置串口参数
int open_port_dlt645(int type)
{
int t_fd = 0;
struct termios opt;
t_fd = open(usartDev[type],O_NOCTTY | O_RDWR);
tcgetattr(t_fd,&opt);
//opt.c_oflag &= ~(OPOST | ONLCR | OLCUC | OCRNL | ONOCR | ONLRET | OFILL);
opt.c_cflag |= CS8;//数据位
opt.c_cflag &= ~CSTOPB;
opt.c_cflag |= PARENB; //使能校验位
opt.c_cflag &= ~PARODD; //禁止奇校验
opt.c_iflag |= INPCK;
opt.c_iflag &= ~(INLCR | ICRNL); //不要回车和换行转换
opt.c_iflag &= ~(IXON | IXOFF | IXANY); //不要软件流控制
opt.c_oflag &= ~OPOST;
opt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); //原始模式
opt.c_cc[VMIN]=0; /* block until 1 char received */
opt.c_cc[VTIME]=0; /*no inter-character timer */
cfsetospeed(&opt,B2400);
cfsetispeed(&opt,B2400);
tcflush(t_fd,TCIFLUSH);
tcsetattr(t_fd,TCSANOW,&opt);//TCSADRAIN
return t_fd;
}