このライブラリーはテストに作ったものです。近いうちに他の関数を加えた形でアップデートするつもりです。 read_8(int reg)、read_16(int reg) で レジスターregの値を8bit、16bitで読み込み、そのまま返します。受け取り側の変数をint8_t、int16_t で定義すれば正負に分かれた値を得られます。 write_8(int reg,int data)、write_16(int reg,int data)で レジスターregに8bit、16bit 書き込み、成功したら0、失敗したら1を返します。確認はread_8、read_16を用いています。 conect() でデバイスが使用可能かを調べ、見つかれば0、なければ1を返します。 reg_reset() で全てのレジスタの値を0にします。成功したら0、失敗したらその時点で処理を停止し、失敗したレジスタを返します。 レジスタは公式のデータシートに書いてあるものと文字は同じです。 もしかしたらうまく行かない関数があるかもしれません。次のアプデのときに修正予定です。

Dependents:   Nucleo_L3GD20_MMA7361_Kalman

Revision:
12:438175c58b44
Parent:
11:11177c8a7915
--- a/l3gd20.h	Fri Sep 30 04:00:39 2016 +0000
+++ b/l3gd20.h	Fri Sep 30 04:14:43 2016 +0000
@@ -86,27 +86,99 @@
     /** function
      *
      * reset all register
-     * @return register number which return error 
+     * @return register number which return error (int)
      */
     int reg_reset();
     
     /** function
      *
      * send WHO_AM_I and return result
-     * @return 1:error 0:no error
+     * @return 1:error 0:no error (int)
      */
     int conect();
+    
+    /** function
+     *
+     * read 8bit register which set
+     * @param reg register number of what you want
+     * @return result (uint8_t)
+     */
     uint8_t read_8(uint8_t reg);
+    
+    /** function
+     *
+     * read 16bit register which set
+     * @param reg register number of what you want
+     * @return result (uint8_t)
+     */
     uint16_t read_16(uint8_t reg);
+    
+    /** function
+     *
+     * write 8bit to the register and check the register is realy set
+     * @param reg register number of what you want to write
+     * @param data register data what you want to write
+     * @return result 1:error 0:no error
+     */
     int write_8(uint8_t reg,uint8_t data);
+    
+    /** function
+     *
+     * only write 8bit to the register
+     * @param reg register number of what you want to write
+     * @param data register data what you want to write
+     */
     void s_write_8(uint8_t reg,uint8_t data);
+    
+    /** function
+     *
+     * write 16bit to the register and check the register is realy set
+     * @param reg register number of what you want to write
+     * @param data register data what you want to write
+     * @return result 1:error 0:no error
+     */
     int write_16(uint8_t reg,uint16_t data);
+    
+    /** function
+     *
+     * now writing
+     */
     int get_scale();
+    
+    /** function
+     *
+     * now writing
+     */
     int set_scale(int dps);
+    
+    /** function
+     *
+     * now writing
+     */
     int get_temp();
+    
+    /** function
+     *
+     * now writing
+     */
     int16_t get_rotate_by_bit(int axis);
+    
+    /** function
+     *
+     * now writing
+     */
     float get_rotate_by_rad(int axis);
+    
+    /** function
+     *
+     * now writing
+     */
     float get_rotate(int axis);
+    
+    /** function
+     *
+     * now writing
+     */
     float deg_to_rad(float deg);
 };