Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
LPC_CAN1->TDA1 = *(uint32_t *) &msg->data[0]; // Write first 4 data bytes
この *(uint32_t ) が使用される理由と、uint32_t の前後のこの " "の目的を教えてください。
このコードの目的は、に存在する最初の 4 バイトを にコピーmsg->data[0]することLPC_CAN1->TDA1です。
msg->data[0]
LPC_CAN1->TDA1
&msg->data[0]msg->data[0] のアドレスを与える。
&msg->data[0]
(uint32_t *) &msg->data[0]そのアドレスを 32 ビットの符号なし整数を指すアドレスにキャストします。
(uint32_t *) &msg->data[0]
*(uint32_t *) &msg->data[0]アドレスから uint32_t 値 (4 バイトの符号なし整数) を読み取ります。
*(uint32_t *) &msg->data[0]
それが理にかなっていることを願っています。