Я использую следующие структуры для форматирования данных CAN-сообщений. messageData.ptr используется для дальнейшей обработки. Часть раздела используется для лучшего доступа. Проблема заключается в том, что whyever есть еще два байта между messageData.srcSpecifier и messageData.dataredundant bytes in union typedef
typedef union _MessagePureData_TypeDef
{
signed int S32[1];
unsigned int U32[1];
unsigned short U16[2];
signed short S16[2];
unsigned char U8[4];
} messagePureData;
typedef union _MessageData_TypeDef
{
unsigned char ptr[6];
struct
{
unsigned char srcDevice;
unsigned char srcSpecifier;
messagePureData data;
} section;
} messageData;
пример:
messageData.section.srcDevice = 0xAA;
messageData.section.srcSpecifier = 0xBB;
messageData.section.data.U32 = 0x11223344;
результаты, которые messageData.ptr содержит: [0xAA, 0xBB, 0х01, 0x17, 0x44, 0x33]
так от где 0x01 и 0x17 ??