4つのGPIOラインを備えたCP2102NベースのUSB / TTLアダプタがあります。
を介してシリアルデバイスのいずれかを開くことができ、関連するGPIOラインは次のように/dev/ttyUSB0
制御されます。libgpiod
/dev/gpiochip1
常に正しいデバイスを変更していることを確認する/dev/ttyUSB0
必要/dev/gpiochip1
があります。/dev/gpiochip1
/dev/ttyUSB0
どうすればいいですか?私はlibgpiod
これをするのを見ませんでした。
答え1
両方のパスが同じコントローラとUSBデバイスコンポーネントを持っているかどうかを確認およびreadlink /sys/class/gpio/gpiochip1
/または確認できます。readlink /sys/class/tty/ttyUSB0
たとえば、次のようなメッセージが表示されます。
# readlink /sys/class/gpio/gpiochip1
../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/gpio/gpiochip1
# readlink /sys/class/tty/ttyUSB0
../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/ttyUSB0/tty/ttyUSB0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The same PCI USB controller and USB device path!
そうすれば、ttyUSB0 == gpiochip1であることがわかります。