天天看點

asio編寫序列槽通信

#include <iostream>

#include<boost/asio.hpp>

#include <string>

int main()

{

    boost::asio::io_context ios;

    std::string buffer;

    buffer.resize(1024);

    boost::asio::serial_port ser_port(ios);

    ser_port.open("COM1");

    ser_port.set_option(boost::asio::serial_port::baud_rate(9600));//比特率

    ser_port.set_option(boost::asio::serial_port::flow_control(boost::asio::serial_port::flow_control::none));//流量控制

    ser_port.set_option(boost::asio::serial_port::parity(boost::asio::serial_port::parity::none));//奇偶校驗

    ser_port.set_option(boost::asio::serial_port::stop_bits(boost::asio::serial_port::stop_bits::one));//停止位

    ser_port.set_option(boost::asio::serial_port::character_size(8));//資料位

    ser_port.async_write_some(boost::asio::buffer("123"), 

        [](const boost::system::error_code& ec, size_t bytes_send) {

            if (ec){

                return;

            }

        });

    ser_port.async_read_some(boost::asio::buffer(buffer),

        [](const boost::system::error_code& ec, size_t bytes_transferred) {

            if (ec) {

                return;

            }

        });

    boost::system::error_code ec;

    ios.run(ec);

}

繼續閱讀