MSP430コントローラーで実行されるmodbusプロトコルのコードを書いています。応答バッファ (グローバル) は、処理された要求に対する応答がシリアル UART で送信される 8 ビット データの配列です。さて、私の問題は、生成された応答が異なるデータ型の組み合わせを持っていることです。つまり、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;
}