当前位置: 技术问答>linux和unix
请教一个关于linux usb转串口的问题
来源: 互联网 发布时间:2017-05-11
本文导语: 菜鸟一名,小弟遇见了一个很奇怪的问题 我在用linux的串口操作外围的usb转串口的一个温湿度计 代码中将串口设置好了之后无论怎么读都不能读取出数据来 但是将外部设备拔下来然后再连接上 代码里不再设置串口的...
菜鸟一名,小弟遇见了一个很奇怪的问题
我在用linux的串口操作外围的usb转串口的一个温湿度计
代码中将串口设置好了之后无论怎么读都不能读取出数据来
但是将外部设备拔下来然后再连接上
代码里不再设置串口的相关属性直接打开,就可以读取数据了,但是再进行与上一次串口同样的设置的话,又不能读取了。不知道是怎么回事儿。现在的问题是每次要操作设备,还得拔下来一次来再插上去,还要修改代码。请各位帮帮忙。。。
附上代码:
我在用linux的串口操作外围的usb转串口的一个温湿度计
代码中将串口设置好了之后无论怎么读都不能读取出数据来
但是将外部设备拔下来然后再连接上
代码里不再设置串口的相关属性直接打开,就可以读取数据了,但是再进行与上一次串口同样的设置的话,又不能读取了。不知道是怎么回事儿。现在的问题是每次要操作设备,还得拔下来一次来再插上去,还要修改代码。请各位帮帮忙。。。
附上代码:
#include
#include
#include
#include
using namespace std;
int m_handle = 0;
unsigned char startcmd01[4] = { 0x01, 0x80, 0x33, 0xfe };
void set_com(int fd) {
struct termios tm;
tcgetattr(fd, &tm);
cfmakeraw(&tm);
tcflush(fd, TCIOFLUSH);
tcsetattr(fd, TCSANOW, &tm);
tcflush(fd, TCIOFLUSH);
if (tcgetattr(fd, &tm) != 0) {
cout