boost asio serial_port 读写串口
2011-11-28 12:33
429 查看
以下是serial_port同步读写串口设备的示例代码:
如果想进行读写超时控制的话,写需要适用异步写的方式,另外加入定时代码:
#include <iostream> #include <boost/asio.hpp> #include <boost/bind.hpp> using namespace std; int main(int argc, char* argv[]) { try { boost::asio::io_service io; boost::asio::serial_port sp(io, "COM1"); sp.set_option(boost::asio::serial_port::baud_rate(38400)); sp.set_option(boost::asio::serial_port::flow_control()); sp.set_option(boost::asio::serial_port::parity()); sp.set_option(boost::asio::serial_port::stop_bits()); sp.set_option(boost::asio::serial_port::character_size(8)); boost::asio::write(sp, boost::asio::buffer("\n", 1)); char buf[101]; boost::system::error_code err; while (true) { size_t ret = sp.read_some(boost::asio::buffer(buf, 100), err); if (err) { cout << "read_some Error: " << err.message() << endl; break; } else { buf[ret] = '\0'; cout << buf; } } io.run(); } catch (exception& err) { cout << "Exception Error: " << err.what() << endl; } getchar(); return 0; }
如果想进行读写超时控制的话,写需要适用异步写的方式,另外加入定时代码:
boost::asio::deadline_timer timer(io); timer.expires_from_now(boost::posix_time::millisec(60000)); timer.async_wait(boost::bind(&boost::asio::serial_port::cancel, &sp));
相关文章推荐
- boost asio serial_port 读写串口
- C++ boost::asio::serial_port 串口通信类 使用 封装 [大三四八九月实习]
- C++ boost::asio::serial_port 串口通信类 使用 封装
- boost asio serial_port
- boost::asio::serial_port set RTS DTS
- error C2039: 'serial_port' : is not a member of 'boost::asio'
- Boost串口通信第一课 boost::asio::serial_port基本使用
- Qt5下使用QtSerialPort对串口读写
- C# SerialPort 串口读写
- boost::asio::serial_port 串口编程
- QextSerialPort 多线程读写串口
- [VB.NET]为何一使用串口类SerialPort中的HandShake程序就会没响应?
- VC SerialPort串口调试,报错: SerialPort comstat is being used without defining
- win Qt qextserialport 编写串口通信程序全程图文讲解
- 关于VS.Net2005中串口操作说明(C#)(SerialPort组件)
- Configure Virtual Serial Port Driver6.9/7.1破解版下载及卸载串口对
- C# 串口接收数据中serialPort.close()死锁的实例
- boost C++ read from serial port with timeout example
- C# serialPort 串口 获取扫描抢数据
- SerialPort如何读取串口数据并显示在TextBox上,多线程委托