• 大小: 31KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签: CC2530  ADXL345  I2C  IIC  

资源简介

参考网络上基于51芯片的ADXL345 I2C通信程序,CC2530需要每次在函数调整SDA和SCL前将端口定义一次,这是和51的最大不同,琢磨了好几天才发现这个问题,终于能用了

资源截图

代码片段和文件信息

#include    
#include    
#define   uchar unsigned char
#define   uint  unsigned int
typedef unsigned char BYTE;

//使用的端口,请按照以下接线
#define SCL   P1_0      //IIC时钟引脚定义
#define SDA   P1_1     //IIC数据引脚定义
#define SDADirOut P1DIR|=0x02;      //xxxx1M01
#define SDADirIn  P1DIR&=~0x02;
#define SlaveAddress   0xA6   //定义器件5883在IIC总线中的从地址

char display[]={“0123456789.“};  //将数字变成字符串的形式才能显示  i对应diaplay[i]
char Txdata[4];
char Txdata1[2];

BYTE BUF[8];                         //接收数据缓存区      
uchar geshibaiqianwan;           //显示变量
int  dis_data;                       //变量
//************

//************
void init_uart();
void delay(unsigned int k);
void Init_ADXL345(void);            //初始化5883
void conversion(uint temp_data);
void display_x();
void display_y();
void display_z();

void  Single_Write_ADXL345(uchar REG_Addressuchar REG_data);   //单个写入数据
//uchar Single_Read_ADXL345(uchar REG_Address);                   //单个读取内部寄存器数据
void  Multiple_Read_ADXL345();                                  //连续的读取内部寄存器数据
//以下是模拟iic使用函数-------------
void Delayus(unsigned int usec);
void ADXL345_Start();
void ADXL345_Stop();
void ADXL345_SendACK(char ack);
char  ADXL345_RecvACK();
void ADXL345_SendByte(BYTE dat);
BYTE ADXL345_RecvByte();
void ADXL345_ReadPage();
void ADXL345_WritePage();
//*********************************************
//串口初始化
//19200 bps 
void init_uart()
{
    CLKCONCMD &= ~0x40;                          //设置系统时钟源为32MHZ晶振
    while(CLKCONSTA & 0x40);                     //等待晶振稳定
    CLKCONCMD &= ~0x47;                          //设置系统主时钟频率为32MHZ
   
  
    PERCFG = 0x00; //位置1 P0口
    P0SEL = 0x3c; //P0_2P0_3P0_4P0_5用作串口
    P2DIR &= ~0XC0;                             //P0优先作为UART0

    U0CSR |= 0x80; //UART方式
    U0GCR |= 9;        
    U0BAUD |= 59; //波特率设为19200
    UTX0IF = 0;                                 //UART0 TX中断标志初始置位0
}

//*********串口数据发送******************
void  SeriPushSend(char *Dataint len)
{
  int j;
  for(j=0;j  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}
//*********************************************************
void conversion(uint temp_data)  
{  
    wan=temp_data/10000+0x30 ;
    temp_data=temp_data%10000;   //取余运算
    qian=temp_data/1000+0x30 ;
    temp_data=temp_data%1000;    //取余运算
    bai=temp_data/100+0x30   ;
    temp_data=temp_data%100;     //取余运算
    shi=temp_data/10+0x30    ;
    temp_data=temp_data%10;      //取余运算
    ge=temp_data+0x30; 
}

/*******************************/
#pragma optimize=none
void delay(unsigned int n)
{
uint i;
for(i=0;i for(i=0;i for(i=0;i for(i=0;i for(i=0;i}


/**************************************
延时1微秒
不同的工作环境需要调整此函数,注意时钟过快时需要修改
当改用1T的MCU时请调整此延时函数
**************************************/
#pragma optimize=none
void Delayus(unsigned int usec)
{
     us

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-04-16 21:23  ADXL345-test\
     文件        2168  2013-04-16 21:24  ADXL345-test\ADXL345-test.dep
     文件       34306  2013-04-16 21:23  ADXL345-test\ADXL345-test.ewd
     文件       56261  2013-04-16 21:23  ADXL345-test\ADXL345-test.ewp
     文件         166  2013-04-16 21:23  ADXL345-test\ADXL345-test.eww
     文件       10305  2013-04-16 21:46  ADXL345-test\ADXL345.c
     目录           0  2013-04-16 21:22  ADXL345-test\Debug\
     目录           0  2013-04-16 21:23  ADXL345-test\Debug\Exe\
     文件       20490  2013-04-16 21:23  ADXL345-test\Debug\Exe\ADXL345-test.d51
     目录           0  2013-04-17 14:32  ADXL345-test\Debug\List\
     目录           0  2013-04-16 21:24  ADXL345-test\Debug\Obj\
     文件         131  2013-04-16 21:23  ADXL345-test\Debug\Obj\ADXL345-test.pbd
     文件       49051  2013-04-16 21:23  ADXL345-test\Debug\Obj\ADXL345.r51
     目录           0  2013-04-16 21:24  ADXL345-test\settings\
     文件        1491  2013-04-16 21:23  ADXL345-test\settings\ADXL345-test.cspy.bat
     文件        5028  2013-04-16 21:24  ADXL345-test\settings\ADXL345-test.dbgdt
     文件         808  2013-04-16 21:24  ADXL345-test\settings\ADXL345-test.dni
     文件        3768  2013-04-16 21:24  ADXL345-test\settings\ADXL345-test.wsdt

评论

共有 条评论