|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
按照卖家给的测试程序 串口显示全是ff或者全是000000,读取不了原始数据,请各位大神指点,用的是郭天祥的开发板,下面是测试程序% z8 k6 f+ y8 T+ U/ h0 j, Z% Z7 N* f
//****************************************
1 V% q- K; u, y% c// Update to MPU6050 by shinetop
1 x% x h, \9 K4 [4 z8 m" w5 u// mcu: STC89C521 T: t9 {7 Z; n, m
// 2012.3.1) T" E; v" I5 d; J) v r
// 功能: 显示加速度计和陀螺仪的10位原始数据
5 K/ }$ s; }! ]. S* O' B7 Z//****************************************
8 a3 a' \5 ~; }! S; }3 n$ Z1 t// 使用单片机STC89C52
* E. i9 t% _9 q! k// 晶振:11.0592M
$ q6 B) N3 }$ ]6 e% A// 显示:串口
: o& y( u5 X; j- H7 M/ k// 编译环境 Keil uVision2
' G4 b8 p( S2 C& T4 ~! n//****************************************
* L- L2 M$ S/ H#include <REG52.H> - N! {% {1 r1 N# R5 ?5 |4 L
#include <math.h> //Keil library 5 d' H. A8 ^7 w6 w5 Z8 ]2 [/ }
#include <stdio.h> //Keil library & k! d5 k- u5 k. E1 ]3 l) F0 e4 A
#include <INTRINS.H># g% Y) N) \. l8 L8 k
typedef unsigned char uchar;
% A! z$ N! Y' |- ?( Z* Dtypedef unsigned short ushort;4 |7 `) C4 F: }0 p
typedef unsigned int uint;
% N# { x$ S* w: ^" a" U//****************************************7 j/ c% H9 a" Z! \/ f6 G) D
// 定义51单片机端口
7 W' J+ O' p( |0 y+ n//****************************************7 S5 ?) v# P& K1 f
sbit SCL=P1^5; //IIC时钟引脚定义
% H* M) G4 H7 N2 msbit SDA=P1^4; //IIC数据引脚定义
* }; _+ R2 N7 d2 N, j! V; S5 V- n4 n//****************************************
' v4 r8 U# _ h// 定义MPU6050内部地址. s! K5 H4 |* s
//****************************************
0 ~: V* y! k. C#define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)
3 B: t2 l4 K5 [+ v, K#define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)8 L0 n, b& ]6 L( w) T
#define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
, d; @: n7 E# m4 M4 ?& p# K$ @( W$ u/ r#define ACCEL_CONFIG 0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
/ P) c# T6 j3 g2 e#define ACCEL_XOUT_H 0x3B
4 I/ X* m7 V% K' @: t; y) { Y#define ACCEL_XOUT_L 0x3C
; T; e5 F F: t" X! S* p#define ACCEL_YOUT_H 0x3D3 S( u) w$ k9 n5 A; A \ X
#define ACCEL_YOUT_L 0x3E$ h9 I* W$ |6 w
#define ACCEL_ZOUT_H 0x3F
, a9 N! c9 O; o' R! o3 P# a! l/ r#define ACCEL_ZOUT_L 0x40
1 j7 I3 {; S, F/ l8 R4 n#define TEMP_OUT_H 0x41+ d9 L$ }; j8 d- h8 h& y% g
#define TEMP_OUT_L 0x42" @- N0 |# I1 c4 Q: |/ v% U
#define GYRO_XOUT_H 0x43% g- {% q8 l2 u5 X2 P
#define GYRO_XOUT_L 0x44 # z9 N6 ^, s O3 T
#define GYRO_YOUT_H 0x45
- S4 B9 D' F! Z0 [ O2 p#define GYRO_YOUT_L 0x46" ]- |" t5 }3 ?' G5 C: |, }8 D
#define GYRO_ZOUT_H 0x47
3 n8 v6 s; e: I3 d1 }( p+ X: J$ ~#define GYRO_ZOUT_L 0x48
6 q% k! ~. A+ j2 m, M5 e#define PWR_MGMT_1 0x6B //电源管理,典型值:0x00(正常启用)
- A* W6 Y2 u* |; Q& N0 H8 {2 O#define WHO_AM_I 0x75 //IIC地址寄存器(默认数值0x68,只读)0 {7 [% Y9 z+ _ n9 n
#define SlaveAddress 0xD0 //IIC写入时的地址字节数据,+1为读取
( x8 G( X2 P6 S5 |1 H/ D//*************************************************************************************************** x, `( ^2 P( l/ _$ W- d% H
//定义类型及变量$ Q1 Z* S& H( Z1 h* |, y
//**************************************************************************************************
6 [ {7 T% R m2 p% [; Duchar dis[6]; //显示数字(-511至512)的字符数组
0 ~' ?% V5 T& t9 eint dis_data; //变量
( H9 }! Z/ |3 Z; N, Q5 `# e//**************************************************************************************************- h( d8 U* g4 {4 B2 P
//函数声明
8 V5 t0 G7 g. q) N//**************************************************************************************************
) |3 V- P8 ^5 L# Rvoid Delay5us();5 V) ~; F3 i5 r+ \# h5 g4 X/ b. z
void delay(unsigned int k); //延时
! [9 z _1 C" I( D. lvoid lcd_printf(uchar *s,int temp_data);0 L3 h3 h! v8 f: u; U- m
//********************************MPU6050操作函数***************************************************/ p8 M, F2 }; U6 l; {' \! X
void InitMPU6050(); //初始化MPU6050( s B& m5 d; V4 T
void I2C_Start();3 J$ f$ I3 g5 S+ j4 _1 x
void I2C_Stop();
- ^1 L' E: Z* ]0 v3 Qvoid I2C_SendACK(bit ack);# A' n' i) s* @; e) D
bit I2C_RecvACK();
$ m7 e6 X" O( V' \void I2C_SendByte(uchar dat);* U/ y9 C, }! {. a) G
uchar I2C_RecvByte();7 s9 r* T2 B; t U: O
void I2C_ReadPage();& o2 X( X- C; r, v6 [' z
void I2C_WritePage();, |, j9 D$ E, V% u+ |( ]/ n
1 Z8 J5 h W; y+ ~' |: |2 Cvoid display_ACCEL_x();
- v9 i( J+ r; {+ tvoid display_ACCEL_y();; O- c6 {4 g2 X% n7 x, y
void display_ACCEL_z();7 Q% e/ _2 B4 t7 [
uchar Single_ReadI2C(uchar REG_Address); //读取I2C数据4 E& c! W1 ]2 x. @- f0 B
void Single_WriteI2C(uchar REG_Address,uchar REG_data); //向I2C写入数据
9 \/ e- y% G) [! v//********************************************************************************
6 l/ w# M3 p8 Y1 o" E2 X! c//整数转字符串
/ z& N6 l5 Y& [9 {6 T- K- B//********************************************************************************
. i" O# |' O9 S! \2 _void lcd_printf(uchar *s,int temp_data)/ c; C& I, k, R$ B$ i9 K
{; Q, c7 W9 \% B0 d
if(temp_data<0)) U/ ^; D9 r- h
{: ~6 a1 d" K. p" Q! Y. _& A
temp_data=-temp_data;) w$ p: n9 U, q" p: p8 c
*s='-';$ W: [/ L' W( o% u
}
- a1 s3 j w1 ?0 i) K/ B+ a else *s=' ';: W" v$ y4 k/ m. S% ^' q
- l$ y8 X# l# U J# Q- h
*++s =temp_data/10000+0x30;
* ~; Z: Z: ?+ l& Y temp_data=temp_data%10000; //取余运算( ~) g5 ~$ Z/ M! T
6 ^: @/ ~. n9 Y" v0 C6 R *++s =temp_data/1000+0x30;
9 s9 t1 P( O( ]0 `! [1 K temp_data=temp_data%1000; //取余运算0 i9 [0 b4 c, A1 w1 t
: u& G7 ^3 H e *++s =temp_data/100+0x30; \/ Q) j x, p$ z7 r$ j
temp_data=temp_data%100; //取余运算
8 ~) y: L/ D! U8 @% f( L' b *++s =temp_data/10+0x30;
5 ^: }: y6 `2 N temp_data=temp_data%10; //取余运算
* N: v0 M! d/ u1 S3 e7 |% X1 K *++s =temp_data+0x30;
. x% z% L* h7 Q4 P8 S}* [: B2 c9 ^2 ~9 t {3 W
//******************************************************************************************************
$ n9 h' r0 F4 Q//串口初始化# Q, I2 q% }8 q. z% c) [5 [
//*******************************************************************************************************
0 S8 w8 J' ?8 w. r5 z) {void init_uart(): h8 V( s9 a+ [
{* u5 f# v9 b: I! z
TMOD=0x20; ; E2 P# Q7 w$ j8 V; V3 y5 \
TH1=0xfd; //实现波特率9600(系统时钟11.0592MHZ) ; u7 p, h3 _0 V3 e& d
TL1=0xfd;
; X3 W" D" I- \: K) i0 V5 L SM0=0;SM1=1;
. t% T" h2 H, S* D //SCON=0x50;( A3 R" M1 ]& w, S
//PS=1; //串口中断设为高优先级别
6 B# e/ E! i# L0 y //TR0=1; //启动定时器
7 W1 w/ Q+ A) A6 c' S0 P TR1=1;
! H! A. {, T. j //ET0=1; //打开定时器0中断 7 F- Y4 o- ]& u- B" n) B/ I
//ES=1;
( J1 t! i7 [. [, J! B# B" w& f //EA=1;% Y ^! _6 Y1 Y: i
}/ R; U& V/ @% q5 B. R
//*************************************************************************************************6 g F. C: {& @' M2 P0 ~
//串口发送函数
# O2 b6 k) @; s7 E. E( f//*************************************************************************************************; N5 h" Z# a) |2 C7 Y* C& u7 [1 {
void SeriPushSend(uchar send_data)
% y$ J2 a; f! x1 M5 D{
M$ v8 ?9 m6 W/ A; Y+ [ m* L% U SBUF=send_data; : {, D) m& W% K9 X
while(!TI);TI=0;
0 K4 V& w! m. I8 S0 D. F1 \' m) |}
4 D4 z; W: d# Y8 O8 v' o+ c//*************************************************************************************************5 c8 \/ O+ i% v: `4 b6 C
//************************************延时*********************************************************
, M$ Z$ c# ^8 b/ ?/ x//*************************************************************************************************) X. k) B) h, o2 ^/ I: ]1 n* ~1 G3 {$ s. h
void delay(unsigned int k)
$ b* ?. C/ l5 e9 X9 @# |) W/ C5 B{ & V0 S; I& A# T( O
unsigned int i,j; & n, j) D, _) h9 ~) F+ j0 J
for(i=0;i<k;i++)
* G( g& R. a6 @ a- }7 T/ m {
3 Y# e! v% R5 D) |9 g ]; q9 Q6 Z for(j=0;j<121;j++);
; J3 S- G* H/ _7 ~8 K0 ? }
$ n/ T1 w2 U! h( z) S: I}, U( J0 n! W& R
//************************************************************************************************
2 {6 ^8 [1 G' f, v6 {. [//延时5微秒(STC90C52RC@12M) _: T. d! u* m5 ^9 E
//不同的工作环境,需要调整此函数* Q. Y( H. y0 l8 g( Z) B" e
//注意当改用1T的MCU时,请调整此延时函数0 `4 p; h0 B! u& O
//************************************************************************************************
, s9 x$ j/ _1 t7 G7 C* X# rvoid Delay5us()) I+ Z* R6 u) g; P, i
{ ;; }
$ G2 [ R: O: C4 S* J% }: G4 }//*************************************************************************************************
5 ^$ D# s9 q, w7 v1 v4 s//I2C起始信号5 _& J: ]9 K# {9 t
//*************************************************************************************************
0 Z) F, W6 S7 k2 H& r' _void I2C_Start()
2 A$ b, ~* u) G! q+ g{
; ~8 O- x% S. \% x U: T SDA = 1; //拉高数据线
, t! `( @3 G! }9 v4 a0 q SCL = 1; //拉高时钟线3 t8 f5 ~3 L# _+ Z/ z
Delay5us(); //延时
! G- b0 a+ ?) U8 v+ b6 g1 U5 @! Z SDA = 0; //产生下降沿2 Z" M) H7 e! _7 C3 a8 r
Delay5us(); //延时
5 Z0 l1 k5 @( a, y0 e SCL = 0; //拉低时钟线
! \) ^6 R# Z2 A4 P" i7 B6 [) C4 V Delay5us();
2 i; i- x0 ~% n* {5 m}- P# d) N! q* O; h
//*************************************************************************************************
# S1 {" l% Y. e( ^" [* G; N//I2C停止信号7 Z. A4 n$ _5 h0 b9 C# @1 y2 e& t7 \
//************************************************************************************************** z& d( t* L/ _9 |( c
void I2C_Stop()
; g/ S1 M' C) F" ~{
" r7 a# E# p! P" B/ n SDA = 0; //拉低数据线. x: b& z! d( i& z. Y% e
Delay5us();
" U6 V7 [( ?8 R+ B, q$ q f SCL = 1; //拉高时钟线( N* Y9 ?" t- R! h
Delay5us(); //延时
: ?' R: |# D5 C: U4 D# {1 } SDA = 1; //产生上升沿. m2 _9 Q" x7 |' k3 e9 I. U
Delay5us(); //延时# V* z6 I+ p1 ~6 _9 B! D. C r6 i, b
}
/ r3 Y3 K, R, m2 H6 b//**************************************************************************************************! O7 D/ x5 f' r$ n
//I2C发送应答信号# [( I$ R5 c5 I9 I$ O( S0 A9 p) A
//入口参数:ack (0:ACK 1:NAK)9 g9 \6 K9 i ]9 Y7 G
//**************************************************************************************************
7 o, h7 a: @: h! q* Q0 C* M7 [, Dvoid I2C_SendACK(bit ack)
1 E' q2 Q$ g# j" t0 g8 p2 N{
+ N6 @# B. w! b p' o SDA = ack; //写应答信号' g1 e, w% j$ o
SCL = 1; //拉高时钟线6 H4 j1 c9 H. n! V; S8 s) X% r; X
Delay5us(); //延时
/ l2 s3 z& J5 h. y6 b: B. ^ SCL = 0; //拉低时钟线/ \0 H5 G6 c: v1 Q
Delay5us(); //延时
7 l/ x8 `% K3 ]2 ]' `1 w2 F}: Q; s8 Y( d# `3 L) `7 U5 E! U
//****************************************************************************************************; @+ \% X) O A3 A* g7 ]
//I2C接收应答信号' U, _$ P+ Y2 ]* i
//****************************************************************************************************
1 t x H9 v3 S8 S9 Ybit I2C_RecvACK()- b S* l0 _$ I/ e( `' N
{
5 [5 z8 A7 Z+ `5 z SCL = 1; //拉高时钟线% p, g+ {* W( p# n
Delay5us(); //延时4 S; {9 i; u+ [/ V
CY = SDA; //读应答信号
6 f/ r) j2 M8 @; d SCL = 0; //拉低时钟线
! i0 o) u& Y5 u1 ^$ r Delay5us(); //延时3 G9 T* T) Y& t9 s* ~
return CY;* A9 [* z8 z' o( c6 F. b5 r R! O' u" g
}/ k1 ^2 @% B: N( V5 q4 g2 T$ [* w/ x3 o
//*****************************************************************************************************' B3 S/ k& R% ~9 I
//向I2C总线发送一个字节数据# a) H2 p+ I I1 F7 l' B. V. _9 x5 U
//*****************************************************************************************************, a) N; @) v" w0 J$ F
void I2C_SendByte(uchar dat)" C; J4 L1 b0 ^$ z$ Q; r
{
1 L" Y: ]: n: M2 G! H uchar i;+ t: D: t/ A4 z8 R- s; P' d
for (i=0; i<8; i++) //8位计数器' @8 x! }3 t u
{. W( R- |: H0 F% a' s1 @
dat <<= 1; //移出数据的最高位9 k7 Z# A3 C/ y: L
SDA = CY; //送数据口4 ~0 v4 M4 n% r/ {+ h& `1 H
SCL = 1; //拉高时钟线% F/ x2 e, C) S$ M# X1 Y
Delay5us(); //延时
& W+ c: X9 W, l. Y* x SCL = 0; //拉低时钟线
6 ?) Q: |2 i5 J+ X: K( H4 @ Delay5us(); //延时) ^6 c* ~9 P$ v2 Y% k
}
1 @$ s6 a- K0 s8 h c: _ I2C_RecvACK();
& x" Y' y+ W& W/ C2 q}
/ T8 o9 M: K- C1 C. P% }$ B" i& ~//*****************************************************************************************************5 Y: j6 M" |4 q {5 J; d5 o
//从I2C总线接收一个字节数据
& y% l( g7 v1 g) U//******************************************************************************************************
* ^. u! P5 W4 Iuchar I2C_RecvByte()( C2 l( H! f' w- R9 V
{- c# J/ F {* J8 E& ~- u
uchar i;1 c; N% ~. i1 u
uchar dat = 0;
) F3 J! f7 j' b/ f: \$ y SDA = 1; //使能内部上拉,准备读取数据,
?/ Z ^. u! w0 p' q for (i=0; i<8; i++) //8位计数器
. w7 R" F0 f U7 b {3 k% t/ R8 K0 L8 T) I
dat <<= 1;) u Q0 b: B. x% {2 U6 y5 i# `
SCL = 1; //拉高时钟线
% r% c" C; ^" }/ p* [. L5 {, X( x4 } Delay5us(); //延时
/ }) t- ~# K3 ?) Y$ X( A; a dat |= SDA; //读数据
- Y: k, S) Q& y7 A. a2 ~+ ^0 @! Y SCL = 0; //拉低时钟线" |( q) ]3 l" H" |# p0 y1 b( S3 L' R
Delay5us(); //延时
% Y2 f, }' M, ~ }
. K: A7 a6 I) Z- h return dat;
, ^6 {: T, R9 n) Y0 J}
# e, C* [* L; Q$ M! C//*****************************************************************************************************
8 j# z0 I& t: ^, r3 J* ~//向I2C设备写入一个字节数据
3 n3 ^( X0 k9 |: t; o- i+ r, ^//*****************************************************************************************************9 g8 q7 d. b7 D, n
void Single_WriteI2C(uchar REG_Address,uchar REG_data)- q0 e$ ]3 f i% i9 V8 u8 U t
{- Z9 k6 |2 V+ [# Y9 O& U1 k9 f
I2C_Start(); //起始信号
6 a' }' q6 q, @( ?0 W/ g G; k I2C_SendByte(SlaveAddress); //发送设备地址+写信号
: B7 L! B0 k7 T I2C_SendByte(REG_Address); //内部寄存器地址,
5 C8 [% j, ~& ] I2C_SendByte(REG_data); //内部寄存器数据,
3 w/ x: a, V: h, w I2C_Stop(); //发送停止信号. A% D! \: ^7 P- p3 Z9 l1 j, i
}/ H( S2 \, Q" I( P0 d2 L3 r5 V
//*******************************************************************************************************8 s1 ]- i0 }/ O) N; V
//从I2C设备读取一个字节数据$ p8 R4 o4 s( R8 [ C0 E1 Y
//*******************************************************************************************************
/ R, m. i7 s( m; `uchar Single_ReadI2C(uchar REG_Address)
8 E/ w5 b- z' o( g# G" M: x6 E. o' s{ d P8 Q2 X9 F M
uchar REG_data; [7 F* j4 b) y w9 v
I2C_Start(); //起始信号
/ F( y1 @) K* Q) f# R I2C_SendByte(SlaveAddress); //发送设备地址+写信号
0 `+ _/ O) J* K, m5 h. o% Y I2C_SendByte(REG_Address); //发送存储单元地址,从0开始
0 |+ H5 H/ Q; `& p! c7 h I2C_Start(); //起始信号; C$ \1 ?% |7 }" D9 W$ ~2 @8 @
I2C_SendByte(SlaveAddress+1); //发送设备地址+读信号* G" |5 t( b/ I
REG_data=I2C_RecvByte(); //读出寄存器数据; r$ ]5 Y7 ? A0 Z
I2C_SendACK(1); //接收应答信号2 D8 I: @2 D& I$ P |& e
I2C_Stop(); //停止信号$ K, [$ @& p9 _6 r, L
return REG_data;& b3 \) {9 B; c p
}. ?9 j0 c: Q! o
//******************************************************************************************************
% X" {5 i4 R/ @//初始化MPU6050; W3 x6 z3 t4 _9 G3 [( z1 T1 m
//******************************************************************************************************0 o+ Q7 W- f. l5 U9 @+ h5 R4 O
void InitMPU6050()
3 X% ~0 {9 w4 L, y- l/ p; v0 m{) V) o' C h3 O' t: Z
Single_WriteI2C(PWR_MGMT_1, 0x00); //解除休眠状态
+ z; |3 U4 J$ m) S) ]7 d5 A1 { Single_WriteI2C(SMPLRT_DIV, 0x07);
9 z- U0 m7 p1 s4 n5 n& _/ r# Y Single_WriteI2C(CONFIG, 0x06);
4 |5 B9 \+ Z4 o# A Single_WriteI2C(GYRO_CONFIG, 0x18);; c0 ]+ ]; G9 F/ k
Single_WriteI2C(ACCEL_CONFIG, 0x01);
8 a5 f* ?" C. n( P9 g}
: U, F) l A" q' W: x9 a' i( Q/ j& a//******************************************************************************************************4 A5 q' e# X% @1 R4 D
//合成数据- t# D! ~% v! H" O/ H; c* u5 g. P U" L
//******************************************************************************************************
3 a/ Y' X' z/ g) }$ }int GetData(uchar REG_Address), U; y2 P4 i+ p* Y$ _, L! ~8 i
{# r! S0 y3 ~ [$ {
uchar H,L;
& L) x5 H( s5 Y# O$ n H=Single_ReadI2C(REG_Address);
0 A6 V A% s' u4 J* i L=Single_ReadI2C(REG_Address+1);
' z2 {- }; z5 ^! v return ((H<<8)+L); //合成数据5 e* i5 A" p) L% F* a7 m
}9 _6 L( Q7 \( u) c: Q
//******************************************************************************************************
, c a8 J& [* b" x//超级终端(串口调试助手)上显示10位数据
1 \' Q* t, _ c9 ~& H' _ ?& B4 _6 ~3 u3 K//******************************************************************************************************
( _4 _) C, c7 [: f) ] Z7 G2 ]void Display10BitData(int value)7 e0 u8 ]! ~ ?; p
{ uchar i;' d" r2 g* _: H; I& L, s! _2 s8 _( _
value/=64; //转换为10位数据
+ n$ ?9 \ A+ j4 l4 t# [ lcd_printf(dis, value); //转换数据显示9 ?3 O& V4 j7 G& b: |
for(i=0;i<6;i++)
s& p' U! x8 k {
( f2 ^. ~4 H. ] SeriPushSend(value);
6 U" F! t# Q+ b }
0 B( O( t n9 ` r3 D0 b; m$ Q& ?( J! ^5 o: ^7 R* v9 x4 a7 j2 K
// DisplayListChar(x,y,dis,4); //启始列,行,显示数组,显示长度# H% D& ]& N2 v" j" I
}
/ ]5 v1 }( p k, V5 g//*******************************************************************************************************
1 @, Q/ h1 A* ~3 x//主程序
( F$ a* Z6 q8 b//*******************************************************************************************************# N% J) m8 o. z& V, A7 o: K
void main(), `8 |1 X5 ]% }' F5 o5 x% n1 g
{' D2 t; ?7 `0 L( T; C* F
uchar i;# L5 X5 _8 I* |/ N- s8 |
uchar a;: Z/ O g6 _2 Z; L
delay(500); //上电延时 2 q8 m$ n0 T. H: F& M3 r
init_uart();4 W' g& H8 l6 Y* |
InitMPU6050(); //初始化MPU6050
) U' t7 a" `1 y3 v0 [7 { delay(150);& G: s# G' O1 h: H7 R( Z; N4 q& b
while(1)
1 \6 b- c* I! h7 ^3 ~ {
/ |6 c* l+ `3 y$ u# e6 S5 D! \ 5 {1 _8 q. f5 j* `- T
- f% c& N# Z) u1 Z
//for(i=0;i<6;i++)0 W* _7 j% @; B% s
//{SBUF=dis;while(!TI);TI=0;}7 }% V6 T- g, Q, F" w: A
SeriPushSend(Single_ReadI2C(ACCEL_XOUT_H));
0 ]5 C; W5 s8 K$ P, z( | ; a( X+ G3 }4 y/ Q8 S
P1=Single_ReadI2C(ACCEL_XOUT_H);: ?3 ~; \) P$ j: x* Y$ k; P
Display10BitData(GetData(ACCEL_XOUT_H)); //显示X轴加速度- W. h2 K" X5 \. V7 K: k: h
Display10BitData(GetData(ACCEL_YOUT_H)); //显示Y轴加速度
M( s$ K$ y7 t1 n5 ` b5 w, } Display10BitData(GetData(ACCEL_ZOUT_H)); //显示Z轴加速度
9 T1 j! ^) b% S; L; g Display10BitData(GetData(GYRO_XOUT_H)); //显示X轴角速度
2 A$ k1 [ l3 \! R% T# W8 |1 x Display10BitData(GetData(GYRO_YOUT_H)); //显示Y轴角速度
4 [8 M1 n6 s* z( a# w Display10BitData(GetData(GYRO_ZOUT_H)); //显示Z轴角速度6 c2 \2 a( E y; p
+ d1 i4 x8 |1 X; g
SeriPushSend(0x0d);' u2 n @5 g9 T: g1 X
SeriPushSend(0x0a);//换行,回车
/ S3 z5 {( a5 x5 d$ f# V delay(2000);# [' Y% X2 c+ Z9 f& j1 s
}% ~) P- I/ ?" o5 ~" i) J ~
}! q* g7 p8 s: a0 f
|
|