揮発性のメモ2

http://d.hatena.ne.jp/iww/

GPIOの入出力方向を変更する

GPIOを出力ポートに変更すると valueが0になる、つまり 出力がLowになる。
電源はいって初期状態は入力方向で、入力はだいたいプルアップされててHighなので、プログラムが起動し出力方向を切り替えた瞬間に出力内容がLowに変わってしまうことになり 良くない。


GPIO Sysfs Interface for Userspace

/sys/class/gpio/gpioN/

    "direction" ... reads as either "in" or "out". This value may
        normally be written. Writing as "out" defaults to
        initializing the value as low. To ensure glitch free
        operation, values "low" and "high" may be written to
        configure the GPIO as an output with that initial value.

とのことなので、出力にするとき out でなく high と指定すればOK。

echo 907 > /sys/class/gpio/export
cat /sys/class/gpio/gpio907/direction   # 作成直後は in である
cat /sys/class/gpio/gpio907/value       # 1 である

# echo out > /sys/class/gpio/gpio907/direction
echo high > /sys/class/gpio/gpio907/direction

cat /sys/class/gpio/gpio907/direction   # out になる
cat /sys/class/gpio/gpio907/value       # 1 のまま