Со ссылкой на этот вопрос:
Я решаю проблему, выполнив только часть решения (шаги 2 - 4). Все работало нормально, и сегодня контрольная сумма снова провалилась (сообщение не подтверждено сервером).
Поэтому я предполагаю, что я не объявлял массив без знака (как на шаге 1) и заставлял Arduino случайным образом выбирать использование байт-байта с подписью/без знака.
Однако объявление беззнакового байтового массива
беззнаковый байт MSGpack [187] = {0x00};
вызывает ошибку в Arduino, заявив
Ошибка: "MSGpack" не был объявлен в этой области
В функции 'void injectByte (float, int)':
Ошибка: "MSGpack" не был объявлен в этой области
Как объявить массив байтов без знака в Arduino? Благодарю!
Попробуйте uint8_t
:
uint8_t MSGpack[187] = {0};
MSGpack
должен быть виден везде, где вы его используете. Если он определен в другом модуле перевода, вам нужно предоставить объявлениеextern
чтобы компилятор знал, что он существует. если оно находится в пространстве имен, вам, вероятно, потребуется указать полное имя (например, namespacename :: MSGpack`).