枭龙战机

ADXL345SPI通讯

0
阅读(2110)

#include<ADuC7026.h>
#include"Common.h"

BYTE RXBYTE;
unsigned char spiwrite(unsigned int data){
 unsigned char r_data;
   
 SPITX = (0xFF & (data));     
    while ((SPISTA & 0x08) != 0x08) ;
    r_data = SPIRX;     
    return r_data;
BYTE spiread(unsigned int data){    //read 1 Byte data
   
 SPITX = (0xFF & (data));     //Send dummy date
    while ((SPISTA & 0x08) != 0x08) ;
    data = SPIRX;        // recieve high-byte
    return data;
}
void spiMread(unsigned int data, BYTE RXCONT){ //read 1 Byte data
 RXBYTE = 0x00;
 while(RXBYTE<RXCONT){
  SPITX = (0xFF & (data));    //Send dummy date
     while ((SPISTA & 0x08) != 0x08) ;
     r_data[RXBYTE] = SPIRX;     // recieve high-byte
  RXBYTE++;
 }      
}
void spiread_16bit(unsigned int data, BYTE *data_H, BYTE *data_L){  //read 16bit data
   
 SPITX = (0xFF & (data));     //Send dummy date
    while ((SPISTA & 0x08) != 0x08) ;
    *data_H = SPIRX;       // recieve high-byte
 SPITX = (0xFF & (data));     //Send dummy data
    while ((SPISTA & 0x08) != 0x08) ;
    *data_L = SPIRX;       // recieve low-byte
}