コウスケ スズキ
/
mpu9250test
mpu9250
Revision 0:0ad7e1d9fb12, committed 23 months ago
- Comitter:
- kosukesuzuki
- Date:
- Mon Dec 12 11:10:42 2022 +0000
- Commit message:
- mpu9250
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 0ad7e1d9fb12 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Dec 12 11:10:42 2022 +0000 @@ -0,0 +1,61 @@ +#include "mbed.h" + +I2C i2c(p9,p10); +Serial pc(USBTX,USBRX); + +//スレーブアドレス +uint8_t addrAG = 0b1101001<<1;//AD0=H(VDDIOにした)/7bitであるため. 右にズラして,左に0を追加することで, 8bitにする。 加速度ジャイロのスレーブアドレス +uint8_t addrM = 0b0001100<<1;//磁気センサのスレーブアドレス + +//メモ +//1byte=8bit(char) +//2byte=16bit(int(shortも)) + +int main() { + int i,val; //valは1or0などの確認用 + uint8_t addr,addr1; + char cmd[1];//charはmbedのi2c使用であるため。 + + //セッシング(スリーブモード解除) + i2c.start(); + cmd[0]=0x00; + addr1 = 0x6b; + i2c.write(addr1,cmd,1);//0x6bに0x00を書き込む + cmd[0]=0x02; + addr1 = 0x37; + i2c.write(addr1,cmd,1);//0x37に0x02を書き込む + + //who I amで正常か?を判断する。実際, 加速度・ジャイロと地磁気の二つを確認している。 + addr = addrAG; + for(i=0;i<2;i++){ + cmd[0] = 0x75; //こいつを読んで, 0x71がかえってくる。 + val=i2c.write( addr, cmd, 1);//内部レジスタを指定(1=1byte) + //printf("val=%d",val); + char v; + val=i2c.read( addr, &v, 1);//レジスタの読み取り + uint8_t WHO = v; + //printf("val=%d, 0x%x",val,WHO); + if(WHO == 0x71){ + printf("0x%x/WHO_I_AM is Yes\r\n",addr>>1); + }else{ + printf("0x%x/WHO_I_AM is NO\r\n",addr>>1); + } + addr = addrM; + } + + //加速度・ジャイロ + //0x3bからの14byteに含まれる。そのデータを読む。一つのデータは16bit(=2byte)となるため, 2つのchar(8bit)として分けることができる。 short intなども可ではある。 + //加速度x:0x3b[0],0x3c[1] y:0x3d[3],0x3e[4] z:0x3f[5],0x40[6] (0x41[7],0x42[8]は違うデータ) + //角速度x:0x43[9],0x44[10] y:0x45[11],0x46[12] z:0x47[13],0x48[14] + //上位8bitが先に並んでいる。 + + char data[14]; + data[0] = 0x3b; + val=i2c.write(addrAG,data,1); + //printf("%d",val); + val=i2c.read(addrAG,data,14); + //printf("%d\r\n",val); + + + i2c.stop(); +}
diff -r 000000000000 -r 0ad7e1d9fb12 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Dec 12 11:10:42 2022 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file