C用GPIOライブラリ


8

Raspberry Pi 2でGPIOピンを利用したいのですが、個人的に言語が嫌いなので、Pythonは使用しません。ただし、Cの使用に関する情報は見つからず、Pythonのみです。

公式のC APIはありますか?その場合、チュートリアルはどこにありますか?そうでない場合、どのような選択肢がありますか?


これは、C言語特有の問題ではありませんが、一般的なGPIOプログラミング言語サポートのためのリストを参照してくださいelinux.org/RPi_GPIO_Code_Samples
ジョアン

かなり最近の2つのC APIと1つのC ++ APIがあり、関連する投稿で例を示しました:CからのGPIOピンの制御
gorlux

回答:


10

公式図書館はありません

いくつかのオプションがあります。通常はhttp://wiringpi.comを使用します。これはgpio、最近のRaspbianリリースに含まれているユーティリティに使用されます。

Joanのpigpioライブラリはhttps://github.com/joan2937/pigpioにあり、Pythonラッパーも持っています。ソケットまたはデーモンを使用する場合は、これが推奨され、ハードウェアおよびピンのバンクへのバルクアクセスを適切にサポートします。

どちらにも広範なドキュメントがあります。

他にもいくつかありますが、少し古く見えるものもあります。


2

Milliwaysのようなオペレーティングシステムについては言及しませんが、Raspbianまたは他のGNU / Linuxを意味していると思います。Windows IoTは別です。

すべてのpythonライブラリはCライブラリのラッパーですが、これは珍しいことではありません。C以外でライブラリをゼロから作成することはできます。3つあります:

これらは少なくとも数年前から存在し、積極的に維持されています(たとえば、libbcm2835の最後のバージョンは3〜4か月前でした)。

ただし、目的に応じてライブラリは必要ありません。そこに述べられているように、基本的なもののためのsysfsインターフェースに加えて、カーネルドライバーを使用するI2CおよびSPIのための移植可能なユーザーランドCレベルのインターフェースがあります。これはPWMをそのままにします-3つのライブラリの1つを使用する必要があるハードウェアチャネルにアクセスして使用するには、または、ジョーンが他の質問に関するコメントで言及しているように、非常に速いパルスをカウントしようとしている場合(その場合はいくつかの方法を試してみます)。

私はすべての組み合わせを試したわけではありませんが、pi固有のライブラリが正しくコーディングされていると仮定すると、それらを使用する限り、それらをポータブルインターフェイスと混合して一致させることができるはずです(たとえば、通常のI2C APIと結線PWM for PWMを使用します)。別のピン。これは奇妙なアプローチのように思えるかもしれませんが、モジュール式のコードで作業していて、個々のパーツをできるだけポータブルにしたい場合は理にかなっています。たとえば、I2Cセンサーのインターフェイスを作成する場合は、カーネルドライバーAPIをベースにしてください。次に、それをPWMを使用するプログラムで使用する場合は、PWM用の3つのライブラリのいずれかを使用します。pigpio / wiringPi / libbcm2835で記述されたコードはRaspberry Piでのみ機能します。カーネルドライバーAPIを使用して記述されたコードは、どのLinuxシステムでも動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.