打开串口时遇到问题 这是代码:
void openport(const string & path)
{
boost::system::error_code error;
boost::asio::io_service io;
boost::asio::serial_port port(io);
port.open(path, error);
if(ec)
{
cout << "failed" << ", e=" << ec.message().c_str() << endl;
}
}
int main()
{
openport("ttyUSB0");
return 0;
}
运行程序后终端出错:
failed, e=No such file or directory
我通过cout在函数openport检查了变量路径是否正确
当我把dmesg | grep ttyUSB我得到了:
[11018.593665] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0
[15414.150404] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[15423.084984] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0
任何人都知道如何修复它?
答案 0 :(得分:2)
在POSIX类型系统(例如Linux)上,所有标准设备都位于/dev/
目录中。您需要提供设备的完整路径:
openport("/dev/ttyUSB0");
仅传递"ttyUSB0"
时会发生什么情况,系统会在当前目录中查找该设备。