Code Bye

async_write不调用回调

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不可以吗?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明async_write不调用回调