2016-06-20 8 views
1

専門的な文脈では、vl53L0xを使用する必要があります。このセンサは、インターネット上で何の助けはまだありませんことを意味し、それのAPIと一緒に、最近リリースされました:vl53L0x API(STマイクロエレクトロニクス)を使用した複数の同一I2Cセンサー

http://www.st.com/content/st_com/en/products/embedded-software/proximity-sensors-software/stsw-img005.html

このAPIは、私はgccでコンパイルすることを、いくつかのソースとヘッダファイルが含まれています。それは明らかにコメントがないにもかかわらず、うまく動作します。私は、I2Cバスを介してvl53L0xセンサーを制御するstm32(NUCLEO-F401RE)のメモリーをフラッシュします。ここで、同じI2Cバスにさらにvl53L0xセンサーを追加し、この文書を参照したいと思います(読みたい場合は、5ページの下半分に直接進みます)。

http://www.st.com/content/ccc/resource/technical/document/application_note/group0/0e/0a/96/1b/82/19/4f/c2/DM00280486/files/DM00280486.pdf/jcr:content/translations/en.DM00280486.pdf

私が既に他のセンサーに適用している原則は、すべて同じアドレスから始まるということです。残念ながら、ST MicroelectronicsはI2Cレジスタのリストを公開していないため、APIを使用する必要があります。複数のセンサーを制御します。上にリンクされたドキュメントは、これを行う方法を説明します。とりわけ、それが指定されています。

In vl53L0x_platform.h API file 
• Set VL53L0x_SINGLE_DEVICE_DRIVER macro to 0 so that API implementation will 
be automatically adapted to a multi-device context. 

私はAPIフォルダにどこにでも見て、私はVL53L0x_SINGLE_DEVICE_DRIVERマクロへの参照を見つけることができませんでした。 0に設定すると、この文字列はAPIファイルのどこにも存在しないため、何も変更されません。誰も同じような問題に遭遇しましたか?

+0

VL53L0x_SINGLE_DEVICE_DRIVERマクロを設定しないと機能しますか? APIが常に複数のデバイスを受け入れるように変更されているが、ドキュメントが更新されていない可能性があります。 – Tim

+0

私はそうしないと、うまく動作します。それは何も変わらない。 –

+0

これはあなたの質問に答えていることを意味しますか? – Tim

答えて

1

私は同じことに取り組んでいます。あなたは私よりもずっと前にいるようです。しかし、これを私のwhile(1)ループに置くと、両方のセンサーが動作するように見えます。

ResetAndDetectSensor(0); 
TimeStamp_Reset(); 

ガイドでは、同時にすべてのセンサーを使用するために、あなたは、すべてのセンサー用の高XSHUTピンを引っ張るタイムスタンプをリセットしてから実際に何かを検出するセンサをピックアップする必要があると述べています。

関連する問題