【发布时间】:2013-02-06 08:23:23
【问题描述】:
我正在使用 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 之间。我尝试了不同的发送方法,结果总是相同的。欢迎提出任何建议。
【问题讨论】:
-
您的问题中缺少一些信息。串口是怎么设置的?多少数据位?
-
波特率 115200 我没有更改其他值。所以我认为它是默认值 8 位,没有奇偶校验。明天我会尝试自己设置它们。默认值可能有问题。
-
我设置了数据位选项并且它起作用了。感谢您的关注。
标签: boost serial-port boost-asio