boost::asio::io_service ios; boost::asio::serial_port port(ios); boost::system::error_code ec; port.open("COM4",ec); //port.set_option ios.run(); char cCmd = 0x30; boost::asio::async_write( port, boost::asio::buffer(&cCmd,1), boost::bind(handle_write,boost::ref(port), boost::asio::placeholders::error) ); //COM4串口打开成功,并且数据已经成功发送到目的机器了(已确定),但回调函数 handle_write 却没有被调用。 //Cmd 发出以后,串口上有数据持续的上行。 void handle_write(boost::asio::serial_port& port,const boost::system::error_code& ec) { if(ec) return; //这里没能进入到断点, handle_write() 不被调用,为什么会这样呢? //port.async_read_some(......); }
解决方案
20
20
局部变量前面加static不可以吗?