在C++中讀取串口數據通常需要使用串口通信庫,比如boost庫或者Qt的串口通信模塊。以下示例代碼使用boost庫來讀取串口數據:
#include <iostream>
#include <boost/asio.hpp>
int main() {
boost::asio::io_service io;
boost::asio::serial_port serial(io);
serial.open("/dev/ttyUSB0"); // 串口設備路徑
serial.set_option(boost::asio::serial_port_base::baud_rate(9600)); // 波特率設置
char c;
std::string read_data;
do {
boost::asio::read(serial, boost::asio::buffer(&c, 1)); // 讀取一個字節數據
read_data += c;
} while (c != '\n'); // 以換行符作為數據結束標志
std::cout << "Received data: " << read_data << std::endl;
serial.close();
return 0;
}
該示例代碼首先打開串口設備并設置波特率為9600,然后循環讀取串口數據直到遇到換行符為止,最后打印讀取到的數據。在實際應用中,可能需要根據具體的串口通信協議來解析數據。