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

资源简介

参考网络上基于51芯片的5883 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   0x3C   //定义器件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_HMC5883(void);            //初始化5883
void conversion(uint temp_data);
void display_x();
void display_y();
void display_z();

void  Single_Write_HMC5883(uchar REG_Addressuchar REG_data);   //单个写入数据
//uchar Single_Read_HMC5883(uchar REG_Address);                   //单个读取内部寄存器数据
void  Multiple_Read_HMC5883();                                  //连续的读取内部寄存器数据
//以下是模拟iic使用函数-------------
void Delayus(unsigned int usec);
void HMC5883_Start();
void HMC5883_Stop();
void HMC5883_SendACK(char ack);
char  HMC5883_RecvACK();
void HMC5883_SendByte(BYTE dat);
BYTE HMC5883_RecvByte();
void HMC5883_ReadPage();
void HMC5883_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:57  5883L-test\
     目录           0  2013-04-16 21:25  5883L-test\Debug\
     目录           0  2013-04-16 21:57  5883L-test\Debug\Exe\
     文件       20901  2013-04-16 21:57  5883L-test\Debug\Exe\HMC5883L-tese.d51
     目录           0  2013-04-17 14:32  5883L-test\Debug\List\
     目录           0  2013-04-16 21:59  5883L-test\Debug\Obj\
     文件       48480  2013-04-16 21:57  5883L-test\Debug\Obj\HMC5883.r51
     文件         129  2013-04-16 21:57  5883L-test\Debug\Obj\HMC5883L-tese.pbd
     文件        9894  2013-04-16 21:49  5883L-test\HMC5883.c
     文件        2173  2013-04-16 21:59  5883L-test\HMC5883L-tese.dep
     文件       34306  2013-04-16 21:57  5883L-test\HMC5883L-tese.ewd
     文件       56247  2013-04-16 21:57  5883L-test\HMC5883L-tese.ewp
     文件         167  2013-04-16 21:26  5883L-test\HMC5883L-test.eww
     目录           0  2013-04-16 21:27  5883L-test\settings\
     文件        1491  2013-04-16 21:58  5883L-test\settings\HMC5883L-tese.cspy.bat
     文件        3669  2013-04-16 21:59  5883L-test\settings\HMC5883L-tese.dbgdt
     文件         895  2013-04-16 21:59  5883L-test\settings\HMC5883L-tese.dni
     文件        2687  2013-04-16 21:59  5883L-test\settings\HMC5883L-test.wsdt

评论

共有 条评论