ジャイロスコープ

書式#include <iostreamの>

名前空間stdを使用。

メインint型()
{
COUT << <<てendl; "Hello Worldの!"
リターン0;
}
/ **
*コマンド@brief
* 0:シリアル出力周波数
* 1:設定ボーレート
* 2:モジュールのアドレスを設定
* 3:透明な方位
* 4:クリア車体加速度
* 5:出力設定のデータタイプ
* 6:
* /
INTコマンド;
INTアドレス= 0x00で、
INT NewAddress、
ボイドsetFrequency(INTセット= 0x03の)
{
unsigned char型のBUF [ 6];
BUF [0] = 0x68;
BUF [1] = 0x05を;
BUF [2] =住所;
BUF [3] = 0x0Cの;
BUF [4] = SET;
(INT I = 1; I <5; I ++ )
{
BUF [5] =(BUF [5。] + BUF [I])&0xFFで;
}
ser.write(BUF);
}

BOOL setFrequencyReturn(unsigned char型* BUF、INTサイズ= 6)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] == 0×05)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x8C)&&(BUF [5] ==チェックサム))
{
IF(BUF [4] == 0×00)
{
trueを返します。
}

{
falseを返します。
}
}
}
ボイドsetBandrate(INTセット= 0x05の)
{
unsigned char型のBUF [6]。
BUF [0] = 0x68;
BUF [1] = 0x05を、
BUF [2] =アドレス。
BUF [3] = 0x0Bの。
BUF [4] =セット。
(; I <5 I ++ iは1 = INT)のために
{
BUF [5] =(BUF [5] + BUF [I])&0xFFで。
}
ser.write(BUF)。
}
BOOL setBandrateReturn(unsigned char型* BUF、INTサイズ= 6)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] == 0×05)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x8B)&&(BUF [5] ==チェックサム))
{
IF(BUF [4] == 0×00)
{
trueを返します。
}

{
falseを返します。
}
}
}


ボイドsetAddress(INTセット)
{
unsigned char型のBUF [6]。
BUF [0] = 0x68;
BUF [1] = 0x05を、
BUF [2] =アドレス。
BUF [3] = 0x0Fの。
BUF [4] =セット。
(; I <5 I ++ iは1 = INT)のために
{
BUF [5] =(BUF [5] + BUF [I])&0xFFで。
}
ser.write(BUF)。
newaddress =セット。
}
BOOL setAddressReturn(unsigned char型* BUF、INTサイズ= 6)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] == 0×05)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x8F)&&(BUF [5] ==チェックサム))
{
IF(BUF [4] == 0×00)
{
アドレス= newaddress。
trueを返します。

そうでない
{
falseを返します。
}
}
}

ボイドresetAngle()
{
unsigned char型のBUF [5]。
BUF [0] = 0x68;
BUF [1] = 0x04の;
BUF [2] =アドレス。
BUF [3] =の0x28。
(; I <4 I ++ iは1 = INT)のために
{
BUF [4] =(BUF [4] + BUF [I])&0xFFで。
}
ser.write(BUF)。
}
BOOL resetAngleReturn(unsigned char型* BUF、INTサイズ= 5)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] == 0x04の)&&(BUF [2] ==アドレス)&&(BUF [3] ==の0x28)&&(BUF [5] ==チェックサム))
{
IF(BUF [4] == 0×00)
{
trueを返します。
}

{
falseを返します。
}
}
}
ボイドresetAcc()
{
unsigned char型のBUF [5]。
BUF [0] = 0x68;
BUF [1] = 0x04の;
BUF [2] =アドレス。
BUF [3] =は0x27。
(; I <4 I ++ iは1 = INT)のために
{
BUF [4] =(BUF [4] + BUF [I])&0xFFで。
}
ser.write(BUF)。
}

BOOL resetAngleReturn(unsigned char型* BUF、INTサイズ= 5)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] == 0x04の)&&(BUF [2] ==アドレス)&&(BUF [3] ==は0x27)&&(BUF [5] ==チェックサム))
{
IF(BUF [4] == 0×00)
{
trueを返します。
}

{
falseを返します。
}
}
}

ボイドsetOutputKind(INTセット= 0x70)
{
unsigned char型のBUF [6]。
BUF [0] = 0x68;
BUF [1] = 0x05を、
BUF [2] =アドレス。
BUF [3] = 0xFDで。
BUF [4] =セット。
(; I <4 I ++ iは1 = INT)のために
{
BUF [5] =(BUF [5] + BUF [I])&0xFFで。
}
ser.write(BUF)。
}

BOOL setOutputKindReturn(unsigned char型* BUF、INTサイズ= 6)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] == 0×05)&&(BUF [2] ==アドレス)&&(BUF [3] == 0xFDでは)&&(BUF [5] ==チェックサム))
{
IF(BUF [4] == 0×00)
{
trueを返します。
}

{
falseを返します。
}
}
}


ボイドparseNineAxis(unsigned char型* BUF、INTサイズ= 0x20の)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
IF((BUF [0] == 0x68)&&(BUF [1] = 0x1Fの)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x84の)&&(BUF [サイズ-1] = =チェックサム))
{
int型のサイン。
IF((BUF [4]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [4]&0x80の)== 0×00)
{
サイン= 1。
}
ロール=記号*((BUF [4]&0xEFという)* 100 + BUF [5] + BUF [6] * 0.01)。

IF((BUF [7]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [7]&0x80の)== 0×00)
{
サイン= 1。
}
ピッチ=記号*((BUF [7]&0xEFという)* 100 + BUF [8] + BUF [9] * 0.01)。

IF((BUF [10]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [10]&0x80の)== 0×00)
{
サイン= 1。
}
ヨー=記号*((BUF [10]&0xEFという)* 100 + BUF [11] + BUF [12] * 0.01)。

IF((BUF [13]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [13]&0x80の)== 0×00)
{
サイン= 1。
}
accxで=記号*((BUF [13]&0xEFという)* 10 + BUF [14] * 0.1 + BUF [15] * 0.001)。


IF((BUF [16]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [16]&0x80の)== 0×00)
{
サイン= 1。
}
ACCY =記号*((BUF [16]&0xEFという)* 10 + BUF [17] * 0.1 + BUF [18] * 0.001)。

IF((BUF [19]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [19]&0x80の)== 0×00)
{
サイン= 1。
}
accz =記号*((BUF [19]&0xEFという)* 10 + BUF [20] * 0.1 + BUF [21] * 0.001)。

IF((BUF [22]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [22]&0x80の)== 0×00)
{
サイン= 1。
}
gyrox =記号*((BUF [22]&0xEFという)* 100 + BUF [23] + BUF [24] * 0.01)。

IF((BUF [25]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [25]&0x80の)== 0×00)
{
サイン= 1。
}
gyroy =記号*((BUF [25]&0xEFという)* 100 + BUF [26] + BUF [27] * 0.01)。

IF((BUF [28]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [28]&0x80の)== 0×00)
{
サイン= 1。
}
gyroz =記号*((BUF [28]&0xEFという)* 100 + BUF [29] + BUF [30] * 0.01)。
}
}


ボイドparsestandard1(unsigned char型* BUF、INTサイズ= 0x0Eの)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
((BUF [0] == 0x68)&&(BUF [1] = 0x0Dの)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x84の)&&(BUF [サイズ-1] =もし=チェックサム))
{
int型のサイン。
IF((BUF [4]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [4]&0x80の)== 0×00)
{
サイン= 1。
}
gyroz =記号*((BUF [4]&0xEFという)* 100 + BUF [5] + BUF [6] * 0.01)。

IF((BUF [7]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [7]&0x80の)== 0×00)
{
サイン= 1。
}
ACCY =記号*((BUF [7]&0xEFという)* 10 + BUF [8] * 0.1 + BUF [9] * 0.001)。


IF((BUF [10]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [10]&0x80の)== 0×00)
{
サイン= 1。
}
ヨー=記号*((BUF [10]&0xEFという)* 100 + BUF [11] + BUF [12] * 0.01)。

}
}

 


ボイドparsestandard2(unsigned char型* BUF、INTサイズ= 0x0Eの)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
((BUF [0] == 0x68)&&(BUF [1] = 0x0Dの)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x84の)&&(BUF [サイズ-1] =もし=チェックサム))
{
int型のサイン。
IF((BUF [4]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [4]&0x80の)== 0×00)
{
サイン= 1。
}
accxで=記号*((BUF [4]&0xEFという)* 10 + BUF [5] * 0.1 + BUF [6] * 0.001)。

IF((BUF [7]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [7]&0x80の)== 0×00)
{
サイン= 1。
}
ACCY =記号*((BUF [7]&0xEFという)* 10 + BUF [8] * 0.1 + BUF [9] * 0.001)。


IF((BUF [10]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [10]&0x80の)== 0×00)
{
サイン= 1。
}
ヨー=記号*((BUF [10]&0xEFという)* 100 + BUF [11] + BUF [12] * 0.01)。

}
}

 

 

ボイドparsestandard3(unsigned char型* BUF = 0x11をINTサイズ)
{
int型チェックサム= 0。
以下のために(INT I 1 =; I <サイズ-1; I ++)
{
サム=(サム+ BUF [I])&0xFFで。
}
((BUF [0] == 0x68)&&(BUF [1] = 0x10の)&&(BUF [2] ==アドレス)&&(BUF [3] == 0x84の)&&(BUF [サイズ-1] =もし=チェックサム))
{
int型のサイン。
IF((BUF [4]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [4]&0x80の)== 0×00)
{
サイン= 1。
}
gyroz =記号*((BUF [4]&0xEFという)* 100 + BUF [5] + BUF [6] * 0.01)。

IF((BUF [7]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [7]&0x80の)== 0×00)
{
サイン= 1。
}
accxで=記号*((BUF [7]&0xEFという)* 10 + BUF [8] * 0.1 + BUF [9] * 0.001)。


IF((BUF [10]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [10]&0x80の)== 0×00)
{
サイン= 1。
}
ACCY =記号*((BUF [10]&0xEFという)* 10 + BUF [11] * 0.1 + BUF [12] * 0.001)。


IF((BUF [13]&0x80の)== 0x80の)
{
記号= -1。
}
そうであれば((BUF [13]&0x80の)== 0×00)
{
サイン= 1。
}
ヨー=記号*((BUF [13]&0xEFという)* 100 + BUF [14] + BUF [15] * 0.01)。

}
}

おすすめ

転載: www.cnblogs.com/serser/p/12132911.html