teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

関数仕様を把握していなかったので修正

2020/01/13 08:14

投稿

thkana
thkana

スコア7735

answer CHANGED
@@ -5,4 +5,10 @@
5
5
  data = pi.i2c_read_i2c_block_data(hndl,REG_GPIOA,0x01)
6
6
  print(hex(~data&0xff))
7
7
  ```
8
- とでもしてみたらどうでしょう。
8
+ とでもしてみたらどうでしょう。
9
+
10
+ ---
11
+ 修正。
12
+ pi.i2c_read_i2c_block_data()の返り値はタプルで、最初の要素が得られたデータの数、次がbyte配列でデータそのもの、とのことです。hnd1のI2Cバスのデバイスの、REG_GPIOAレジスタから1バイトを読みだした値を使って計算をしたいのですから、
13
+ print(hex(~(data[1][0])&0xff))
14
+ ということになるかと思います。