提升Asio serial_port - 需要帮助io

时间:2008-11-06 06:01:26

标签: c++ boost

所以我一直在尝试学习使用RS232与串口设备通信的boost :: asio。文档记录稀疏,示例不存在。无法弄清楚如何与设备进行通信。设备无法发送数据,所以我需要做的就是写,但其他项目需要实际的来回通信,所以对此有所帮助。到目前为止我的代码是什么。

#include <boost/asio/serial_port.hpp>
using namespace::boost::asio;

int main()
{
    io_service io;
    serial_port port( io, "COM3" );
    port.set_option( serial_port_base::baud_rate( 19200 ) );

    unsigned char commands[4] = { 1, 128, 240, 0 };

    // write the commands to the device

    return 0;
}

简而言之:需要有关serial_port的io部分的帮助。

3 个答案:

答案 0 :(得分:16)

除波特率外,您可能还需要设置其他选项,如:character_size,flow_control,parity和stop_bits。要将数据写入串行端口,可以执行以下操作:

boost::asio::write(port, boost::asio::buffer(commands, 4));

库接受缓冲区类型非常灵活,您可能希望在此处进一步阅读该主题:Buffers

答案 1 :(得分:15)

感谢来自这里和其他地方的帮助,我得到了它的工作。写了一个小程序,可能会帮助一些人找出boost串口的东西。

boostserialportdemo.cpp

答案 2 :(得分:0)

如果您想知道为什么他的示例会出现编译错误,请在两行上将CSIZE更改为C_SIZE。这可能是网上唯一一个很好的示例程序 Thanks