int OpenDev(char *Dev)
{
int fd = open(Dev,O_RDWR | O_NOCTTY | O_NONBLOCK);
if(-1 == fd)
{
perror("Can't Open Serial Port");
return -1;
} else
{
printf("Open com success!!!!!!!!!!!");
return fd;
}
}
1.成功打开串口后,得到一个文件描述符fd,通过进行fd的读写实现通信
2.发送数据:write()函数
3.接收数据:read()函数
//=========================== 写数据 =====================================
pthread_mutex_lock(&mutex_w);
DebugLen = strlen(data.Debug);
if((flag=write(fd,data.Debug,DebugLen)) != DebugLen)
{
printf("--------------1----------------%d\n",flag);
printf("write error!!!\n");
}
pthread_mutex_unlock(&mutex_w);
//=========================== 读数据 =====================================
pthread_mutex_lock(&mutex_r);
nread = read(fd,Buff_BtoTV,30);
//nread为read返回值:实际读到的字节数
pthread_mutex_unlock(&mutex_r);
注:
1.因为该项目在读写数据是针对同一个结构体,所以在读写操作时需要加互斥锁,防止在读写操作发生冲突(读的时候数据改变)
2.建议加异常处理,当没有读到数据或者数据读取不完整的时候加上适当操作