(2014.9.9 作成)
以下よりライブラリをダウンロードしていただけます。STM32F3Discovery基板での動作は確認していますが、Arduinoを含む他のマイコンでの確認は行っていません。Arduinoでは残念ながら動きませんでした。ご興味のある方はこちらをご覧ください。残念です。。。
STM32F3Discovery基板で動作したサンプルコードです。
測定結果のGryoDataとtemperatureはSTMStudioで動作確認を行うため、グローバル関数としています。
asm("NOP")は"何もしない"という意味です。10000数えるまでウエイトを入れたいのですが、for分だけだとコンパイル時に最適化で消去されることがあるためその対策です。
/* Copyright (c) 2014 DenshiKousakuSenka This software is released under the MIT License. http://opensource.org/licenses/mit-license.php */ #include "DKS_SPI_Discovery_F3.h" #include "DKS_GPIO_Discovery_F3.h" #include "DKS_L3GD20.h" extern "C" { float GryoData[3]; int8_t temperature; int main(void) { DKS::DigitalOut ss(GPIOE, GPIO_Pin_3); DKS::SPI::SPI spi(SPI1,0,0,0); //SCK=PA5, MISO=PA6, MOSI=PA7 DKS::L3GD20::L3GD20 l3gd20(&spi, &ss); uint16_t i; while(1) { l3gd20.ReadMagData(GryoData); l3gd20.ReadTemperature(temperature); for (i=10000; i>0; i--) asm("NOP"); } } }