Нет, надо как йцукен написал. Но это редчайшее исключение, которое
подтверждает правило, что нечего постоянно явно разрядность менять. Это выборка из дебильного FIFO, которое в зависимости от разрядности чтения выдает( передает по SPI ) на шину 1 или 2 байта. Поэтому ваш вариант сначала считает 16 бит из FIFO, поскольку физически регистр 16 разряядный. И эти 16 бит есть 2 принятых байта. Потом просто отбросит старшие 8 бит.
поэтому единственный вариант считать из FIFO именно один байт - это сделать указатель на uint8_t и считать его. Тогда компилятор для CortexM3 вставит асмовскую команду чтения байта и считается именно байт. А уж пихать его можно хоть в uint8_t, хоть в uint32_t(что проще и быстрее).