知識ゼロでMCP23017を使う

動機

ライブラリを使うだけの空きメモリがなかった

方法

github.com

結果

  • レジスタIOCON.BANKの値によってレジスタのアドレスが変わるようだが, IOCON.BANKの初期値は0なのでそれで考えればいい
  • bufferにレジスタのアドレスと値を代入してwriteする
  • レジスタの値を読み出すときは, レジスタのアドレス(1バイト)をwriteしてからreadする
  • ピンの読み出しも「ピンの値を保持したレジスタを読み出す」形である。単にreadするだけではない。