Я пишу код для протокола Modbus, который работает на контроллере MSP430.Буфер ответа (глобальный) представляет собой массив 8-битных данных, через который ответ на обработанный запрос должен быть отправлен по последовательному UART.Теперь моя проблема в том, что сгенерированный ответ имеет комбинацию разных типов данных.то есть uint8, uint32, float.Как отправить эти данные с помощью глобального буфера ответов?
Для float я попытался использовать memcpy, и это, кажется, работает нормально.Есть ли лучший и эффективный способ?Потому что размер кадра большой (скажем, 20-30 байтов).Вот демонстрация того, что я пытался сделать
int main()
{ unsigned char buff[8]; //Global buffer
float temp[2]; //temp buffer to store response values
temp[0] = 0x00ef2212;
memcpy(buff, temp, 8);
printf("buff[0]= %u \n buff[1]= %u\n buff[2] = %u\n buff[3]= %u\n", buff[0],buff[1],buff
[2],buff[3]);
return 0;
}