我在打开串口时遇到麻烦
这是代码:

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

谁知道怎么修它?

最佳答案

在POSIX类型的系统(例如Linux)上,所有标准设备都位于/dev/目录中。您需要提供设备的完整路径:

openport("/dev/ttyUSB0");

仅传递"ttyUSB0"时会发生的情况是,系统将在当前目录中查找该设备。

07-25 20:38