Boost.Asio是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型.今天我学习一下利用它完成一个简单的串口通信。
示例如下:Boos_test.cpp
#include <iostream>
#include <boost/asio.hpp>
#include <unsitd.h>
using namespace std;
using namespace boost::asio;
int main(int argc,char** argv)
{
try
{
io_service io;
//liunx 下转串口为ttyUSB0
serial_port sp(io,"/dev/ttyUSB0");
//设置串口参数
sp.set_option(serial_port::baud_rate(9600));
sp.set_option(serial_port::flow_control());
sp.set_option(serial_port::parity());
sp.set_option(serial_port::stop_bits());
sp.set_option(serial_port::character_size(8));
boost::system::error_code err;
while(true)
{
char buf[]="hello";
int nWrite = sp.write_some(buffer(buf),err);
if(err)
{
cout<<"write_some err,errmessage:"<<err.message()<<endl;
break;
}
else
{
char buf[1024];
sp.read_some(buff