Я понял, что такого рода вопросы разбросаны по всему Интернету, но, похоже, ничто не указывает на меня правильно.
Я пытаюсь отправить команду на плату управления Propeller через последовательный поток. Кажется, что соединение работает, но оно продолжает выдавать ошибку для любого типа команды, которую я посылаю - он возвращает те же шестнадцатеричные данные: 10 ffffffe1. Кажется, что отправляемые данные не в правильном формате. Плата, похоже, ожидает байтовые данные, и (я думаю) мой код, кажется, делает это, но я просто не могу понять, что я делаю неправильно. Я думаю, что я не конвертирую данные правильно. Вот мой код ниже. Спасибо всем.
Примечание: код ниже не показывает чтение ответа; это сделано в другой моей программе, которая работает, она также правильно читает ответы от последовательных терминалов.
#include <iostream>
#include <SerialStream.h>
using namespace LibSerial;
using namespace std;
int main(int argc, char** argv) {
SerialStream serial;
serial.Open("/dev/ttyUSB0");
serial.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
serial.SetBaudRate(SerialStreamBuf::DEFAULT_BAUD);
serial.SetNumOfStopBits(1);
serial.SetFlowControl(SerialStreamBuf::FLOW_CONTROL_NONE);
if(serial.good()){
cout << "SUCCESSFUL: serial port opened at: /dev/ttyUSB0" << endl;
usleep(5000);
}
else{
cout << "ERROR: Could not open serial port." << endl;
return 1;
}
std::string str= "ver\r"; //command to get version of firmware
const char* data = str.data();
serial.write(data, sizeof data);
return 0 ;
}