我正在使用 boost asio 串行函数通过串行端口发送数据。我过去曾使用过它,它按我的意愿工作。但现在它的行为很奇怪。这是我用来发送数据的代码:
int data = 97; //represents 'a'
string sendThis = "0";
sendThis[0] = (char)data;
cout<<sendThis<<" "<<data<<endl;
boost::asio::write(serial,boost::asio::buffer(sendThis,1));
问题是:当我发送大于 128 的数据时,我得到的正是我发送的数据。但是当我尝试发送小于 128 的字符时;在另一边,我得到了 128,这是 225 的“a”。由于这个问题,我总是在 128 到 255 之间。我尝试了不同的发送方法,结果总是相同的。欢迎任何建议。