您需要使用termios结构设置正在使用的任何端口的波特率。
使用“man termios”获取有关termios结构的更多信息
所以开始需要添加
#include <termios.h>
在代码的顶部。
稍后当你打开你的端口时:
fd_ard = open(comports[i].c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
您需要访问termios结构并根据需要进行修改
struct termios SerialPortSettings; // Create the structure tcgetattr(fd_ard, &SerialPortSettings); // Get the current attributes of the Serial port
然后,设置波特率
cfsetispeed(&SerialPortSettings,B115200); // Set Read Speed as 115200 cfsetospeed(&SerialPortSettings,B115200); // Set Write Speed as 115200
然后提交更改
if((tcsetattr(fd_ard,TCSANOW,&SerialPortSettings)) != 0) // Set the attributes to the termios structure printf("Error while setting attributes \n");
还有许多其他东西可以设置用于流控制,cannonical模式等,这可能会影响数据的发送和接收方式。请参阅手册页,或参阅 这个描述 通用终端接口