ここでは、UART を介してデータを受信するために使用しているバッファから、構造体のメンバーに値を割り当てる際に問題があります。
私が使用したバッファは、buff と呼ばれるサイズ 35 バイトの char 配列/バッファであり、グローバル バッファです。バッファーの 8 番目のバイトは left_low と呼ばれ、4 バイトの値です。さて、私が C を理解している限り、演算子 '*' は 'Value At' 演算子です。バッファの 8 バイト目から 4 バイトをコピーするために、次のコードを記述しました。これは正しいです?または、ここで memcpy() を使用する必要がありますか? この場合、 memcpy() がどのように機能するかわかりません。助けてください!
char buff[35];
int write_function()
{
struct calibration_data dcs2_config;
dcs2_config.left_low = *(buff+1*8); //will this work?
//or should this be done? memcpy(&dcs2_config.left_low,buff+1*8,4);
return 0;
}