在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,然后循环读取串口数据直到遇到换行符为止,最后打印读取到的数据。在实际应用中,可能需要根据具体的串口通信协议来解析数据。