Я бы сделал так.
#include <stdint.h>
#include <stdio.h>
typedef union uSplit{
uint16_t value;
uint8_t parts[2];
} tSplit;
void main(void)
{
tSplit Split;
Split.value = 0xABCD;
printf("low parth = 0x%x \nHigh parth = 0x%x\n", Split.parts[0], Split.parts[1]);
}