私はおそらく呼吸以外はまったくの初心者なので、明確でない場合は申し訳ありませんが、次のようになります。
I2Cバスを介して回路にバイトを書き込むCの関数があり、ヘッダーファイルでは次のようになります。
BOOL WINAPI JidaI2CWrite(HJIDA hJida, DWORD dwType, BYTE bAddr, LPBYTE pBytes, DWORD dwLen);
- hJida: ボード ハンドル。
- dwType: I2C バスのゼロベースの番号。
- bAddr: I2C バス上のデバイスのアドレス。バスに書き込まれる 8 ビット全体。
- pBytes: バイトを含む場所へのポインター。
- dwLen: 書き込むバイト数。
アドレス 0x98 の回路に 1 バイトだけ書き込みたい場合は、次のようにします。
unsigned char writing[1];
writing[0]=0x10;
unsigned char *pointer;
pointer = &writing[0];
JidaI2CWrite(hJida,0,0x98,pointer,1);
これは機能しているように見えますが、0x10FF などの 2 バイトを書き込みたい場合は機能しません。では、1 バイトではなく 2 バイトを指すポインターを作成するにはどうすればよいでしょうか。
ありがとう