Вам необходимо установить скорость передачи данных любого порта, который вы используете, используя структуру 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");
Есть множество других вещейэто может быть установлено для управления потоком, канонического режима и т. д., которые могут повлиять на то, как данные отправляются и принимаются.См. Справочную страницу или ссылку Это описание общего интерфейса терминала