問題タブ [gpio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Embedded Linux で GPIO ウェイクアップを有効にする
しばらく検索した後、組み込みLinuxでGPIOのウェイクアップイベントを有効にしようとしていますが、これを試してみると:
私は得る
これは、ハードウェアでサポートされていないということですか? または、カーネルで何かを有効にする必要がありますか?
編集:
記録のために、sysfs GPIO が有効になっており、正常に動作しています。GPIO 値を読み書きできますが、ウェイクアップ イベントを有効にできないようです。カーネルのドキュメントを読んでいると、次のように書かれています。
「入力は多くの場合、IRQ 信号として使用できます。多くの場合、エッジ トリガーですが、レベル トリガーされることもあります。このような IRQ は、システム ウェイクアップ イベントとして構成可能であり、システムを低電力状態から復帰させることができます。」
カーネルで GPIO のウェイクアップ イベントを設定する必要があるのでしょうか。また、ハードウェアがサポートしていない場合、 sysfs/class/gpio/gpio#/power/wakeupの下にウェイクアップ ファイルがあるのはなぜですか?
embedded-linux - 組み込み Linux gpio を制御するには?
次のシェル コマンドは、Leopardboard gpio 31 を適切に切り替えます。
これは、以下のコードの例として使用されます。次の .vala コードで gpio 31 がトグルされない理由がわかりませんか?
linux - gpioでループするには?
gpio を使用して実行を制御するにはどうすればよいですか? 以下は、gpio63 の入力値を表示するために機能します。
しかし、私は次のような多くのことを試しました
成功せずに。
python - GPIO ピンの Python コードがエラー NameError を返しています: name 'n' is not defined
私はpythonが初めてで、Raspberry PiのGPIOピン用のコードをいくつか書きましたが、実行すると次のようになります:
私はpythonが初めてなので、エラーを見つけることができないようです-エラーチェッカーを使用しても、少し困惑していますコードは...
コード セットの 3 つの GPIO ピン (これによりオンになります)。次にコードは、どの LED をオンまたはオフにするかをユーザーに尋ねる前に、すべての LED をオフにします。
改善などのためのヘルプの提案は大歓迎です
ありがとう
linux - What is best way to communicate GPIO state from one linux machine to another
私はビーグルボーンとラズベリーパイを実行しています。両方のパス /sys/class/gpio で gpio を簡単に読み取ることができます。Web サーバーを使用して、あるマシンから別のマシンに gpio の状態を簡単に読み取ることができましたが、gpio フォルダーをネットワーク経由でマップするためのより低レベルの方法があるかどうか疑問に思っていました。NFS を試しましたが、debian wheezy イメージを実行している raspberry pi で次の警告が表示されました。
そのため、gpio が NFS 経由でのマッピングをサポートしているようには見えません。誰もそれを行う別の方法を知っていますか?
ありがとう!ジャスティン
linux - Beaglebonegpio入力が機能しない
beagleboneを使用して、sysfsインターフェイスを使用して特定のピンからデジタル入力にアクセスしています。そして、出力状態を変更することはできますが、入力を変更することはできません:(。私が行ったのは、pinAとpinBの2つのピンです。pinAを出力し、pinBを入力しました。pinAをpinBに接続しました。pinAを出力ピンとして設定しました。 sysfsとpinBの方向属性に入力して渡します。PinAの値を1に変更すると、出力として1が返されます(LEDを使用してテストしました)。しかし、PinBの値を読み取ると、0のみが出ています。 pinAの値に0を渡しても、その理由は何でしょうか。
ありがとうございました :)
linux - 「sudo」なしで (ラズベリーパイの) GPIO にアクセスする
もちろん、この質問はラズベリーパイに固有のものではないかもしれません. また、私は比較的 Linux に慣れていません。
sysfs を使用してラズベリー pi の GPIO にアクセスするための小さなライブラリ (問題がある場合は node.js) を作成したいと考えています。ただし、sysfs へのアクセスには sudo アクセスが必要であり、これは明らかな理由から不適切です。
Quick2Wireには解決策があるようですが、盲目的に使用するだけでなく、よりよく理解したいと考えています。彼らはもちろん C を使用していますが、私が理解している限り、コードは複雑ではなく、おそらく bash だけで実行できます。しかし、何よりも、なぜそれが機能するのかわかりません。
どんな助けでも素晴らしいでしょう。
編集:コメントありがとうございます。質問を言い換える必要があることは明らかです。これは次のとおりです: 一度 (root として) インストールされると、アプリはそれ以上 root パーマを使用する必要がないのはなぜですか? この場合、グループに誰かを追加するとどのように役立ちますか? /sys/devices/virtual/gpio
gpio sysfs が利用可能な場所ではないので、そのトリックは何ですか? 私は本当に初心者なので、これらの質問は初心者っぽいかもしれませんが、ご容赦ください。
c++ - C/C++ を使用して特定のメモリ アドレスへの R/W アクセスを取得するにはどうすればよいですか?
GPIOを使用している独自のハードウェア/ドライバーを作成する方法を考えています.GPIOは実際にはすべてのハードウェアに対して特定の範囲の特定のメモリバンクを使用することを知っていますが、これらのメモリにそれらを読み書きするにはどうすればよいですか?銀行?
USBも同様に機能しますか?
PS私はラズベリーパイを使用しています。
embedded-linux - 組み込み Linux デバイスでの GPIO によるレベル トリガー割り込み
組み込み Linux デバイスへのレベル トリガー割り込みを使用する既存のシステムを移植しています。私は少し問題を抱えています。誰かが助けてくれることを願っています。私の計画は、poll() 関数 (ユーザー空間では、低レベルのドライバーの計画はありません) を使用して、gpio ラインが高くなったことを検出することでした。それは何かをするための兆候です。
残念ながら、その条件を有効にする方法がわかりません。現在、私は次のことを行っています。
- gpio 番号を /sys/class/gpio/export に書き込みます
- 方向を「中」に設定します
- エッジを ? に設定します。
条件をクリアせずに poll() が複数回呼び出された場合でも、gpio ラインが高い場合は常にポーリングが返されるように GPIO を設定できますが、ラインが低い場合は待機しますか? poll() を使用する代わりに、何か他のものを使用する必要がありますか? ありがとう!
アップデート
私は解決策があると思ったが、明らかにそうではなかった。GPIO ラインのエッジを「立ち上がり」に設定しました。ハードウェア側では、この行はデータ バッファーの "FIFO 使用" カウントに関連付けられています。FIFO にデータがある場合、ラインはハイです。そうでなければ低いです。次に、次のシステムをセットアップします。
最初の「If」ステートメントが存在するのは、一度に 1 バイトしか読み取らず、poll() は、条件が変わらない場合はタイムアウトになる前に戻らないためです (また、複数のバイトが入っている場合はシステムに戻りません)。 FIFO)。私が今見ている問題は、poll() が返されることがありますが、FIFO にデータがないことです。実際、poll() は「1」を返しますが、FIFO は空であると報告します。
GPIO ラインの「立ち上がり」エッジ設定により、gpioXX/value ファイルが 0 から 1 に変更された場合にのみ、poll() が変更を検出することを期待しています。あれは正しいですか?これは poll() を使用する合理的な方法ですか、それとも別の設計を検討する必要がありますか?
linux - Linux の GPIO API は時間的に決定論的ですか?
gpio_get_value
ドライバーでgpio_set_value
,を呼び出す必要がありgpio_direction_input/output
、関数呼び出しが短時間で返されるように要求するタイミング要件があります5us
。
この要件を満たすことができgpiolib
ますか、それとも決定論的ではありませんか? そうでない場合、解決策は何ですか?GPIO レジスタに直接アクセスしますか?
どうもありがとう。