У меня была такая же проблема, и я нашел эту ссылку очень полезной. Просто импортируйте файл "ieeehalfprecision.c" в ваш проект и используйте его так:
float myFloat = 1.24;
uint16_t resultInHalf;
singles2halfp(&resultInHalf, &myFloat, 1); // it accepts a series of floats, so use 1 to input 1 float
// an example to revert the half float back
float resultInSingle;
halfp2singles(&resultInSingle, &resultInHalf, 1);
Также меняю какой-то код (см. Комментарий автора (Джеймс Турса) в ссылке):
#define INT16_TYPE int16_t
#define UINT16_TYPE uint16_t
#define INT32_TYPE int32_t
#define UINT32_TYPE uint32_t