Мой проект включает в себя передачу 4 8-битных данных по беспроводной сети между двумя модулями RF Transceiver (один работает как основной передатчик, а другой как приемник). Используя отладчик Keil uVision5 на конечной точке получателя (в окне наблюдения, где я наблюдаю за некоторыми переменными), я заметил, что данные, полученные на другом конце модуля, верны, но символы появляются в конце некоторых (не всех) переменных. значения.
Данные отправляются в виде структуры ниже:
typedef struct
{
uint8_t Cmd; // Command/Operation
uint8_t DataLen; // Length of Data
uint8_t* DataBuff; // 2 Bytes of data
} RFFrame_t;
static RFFrame_t _xTxFrame; // variable that will hold the data to be transmitted
Для некоторого контекста «Команда / Операция»:
#define SHUTTEROFF_CMD ((uint8_t)0xDD)
...
_xTxFrame.Cmd = SHUTTEROFF_CMD;
«Длина данных»:
#define TX_BUFFER_SIZE 2
uint8_t TxLength = TX_BUFFER_SIZE;
...
_xTxFrame.DataLen = TxLength;
«Буфер данных»:
uint8_t aTransmitBuffer[TX_BUFFER_SIZE] = {17, 233};
...
_xTxFrame.DataBuff = aTransmitBuffer;
А вот скриншот того, что я вижу:
На скриншоте выше _xRxFrame.Cmd отображается в шестнадцатеричном формате, а _xRxFrame.DataLen, _xRxFrame.DataBuff [0] и _xRxFrame.DataBuff 1 не отображается в шестнадцатеричном формате.
Символы «Y» и «e» появились позади 0xDD и 233 соответственно, что на самом деле не является ошибкой для кода, поскольку все работает нормально. Мне просто любопытно, почему это происходит. Это нормально, что эти символы случайным образом появляются в окне отладки?
Спасибо!