因此,我一直在尝试学习boost::asio内容,以便使用RS232与串行设备进行通信。文件稀疏,示例不存在。无法确切了解如何与设备进行通信。该设备无法发送数据,因此我需要做的只是写操作,但是其他项目需要进行实际的来回通信,因此将对此提供帮助。到目前为止,我拥有什么代码。

#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部分的帮助。

最佳答案

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

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

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

关于c++ - Boost Asio serial_port-需要有关io的帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/267752/

10-13 06:50