• 大小: 3KB
    文件类型: .rar
    金币: 2
    下载: 2 次
    发布日期: 2021-06-04
  • 语言: 其他
  • 标签: ADXL375  

资源简介

以新塘NANO102LC2AN为平台,ADXL375驱动程序(4线SPI通信方式)亲测通过,并已经用于实际项目,

资源截图

代码片段和文件信息

#ifndef  _ADXL375_C
#define _ADXL375_C

#include “ADXL375.h“
#include “Delay.h“
#include “DS18B20.h“

//震荡传感器数据缓存数组,其中:
//ADXL375_Data[0]、ADXL375_Data[1]:X轴数据
//ADXL375_Data[2]、ADXL375_Data[3]:Y轴数据
//ADXL375_Data[4]、ADXL375_Data[5]:Z轴数据
uint8_t ADXL375_Data[6]; 

//ADXL375端口初始化
void Int_ADXL375_Io(void)
{
  GPIO_SetMode(PC BIT4 GPIO_PMD_OUTPUT);//ADXL375_SCK
  GPIO_SetMode(PC BIT5 GPIO_PMD_OUTPUT);//ADXL375_SDI 
  GPIO_SetMode(PC BIT9 GPIO_PMD_OUTPUT);//ADXL375_CS
  
  GPIO_SetMode(PC BIT6 GPIO_PMD_INPUT);//ADXL375_SDO
  GPIO_SetMode(PC BIT8 GPIO_PMD_INPUT);//ADXL375_IN1
  GPIO_SetMode(PC BIT7 GPIO_PMD_INPUT);//ADXL375_IN2
//  GPIO_EnableInt(PC7 GPIO_INT_FALLING);//使能PC7下降沿中断
//  GPIO_EnableInt(PC8 GPIO_INT_FALLING);//使能PC8下降沿中断
//  NVIC_EnableIRQ(GPABC_IRQn);//使能外部信号中断
  
  ADXL375_CS_1;
  ADXL375_SCK_1;
  ADXL375_SDI_1;
  ADXL375_set();//ADXL375初始化寄存器
}
//==============================================================================
//函数:uint SPI2_RW(uint uchar)
//功能:ADXL375的SPI写时序
//******************************************************************************
uint8_t SPI2_RW(uint8_t data)
{
  uint8_t i;
  uint8_t flag;
  //ADXL375_SDI_0; 
  for(i=0;i<8;i++) // output 8-bit
  {
    
    if(data & 0x80)
    {
      ADXL375_SDI_1;         // output ‘uchar‘ MSB to MOSI
    }
    else
    {
      ADXL375_SDI_0; 
    }
    data <<= 1;            // shift next bit into MSB..
    //************注意:读取ADXL375_SDO时,ADXL375_SCK是先低后高,如下所示:****************//
    ADXL375_SCK_0;                // Set SCK high..
    flag = ADXL375_SDO;
    if(flag) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据
    {
      data|=0x01;        // 读MISO到byte最低位
    }
    ADXL375_SCK_1;              // ..then set SCK low again
  }
  return(data);            // 返回读出的一字节
}
//ADXL375初始化设置
void ADXL375_set(void)
{
  SPI2_RW_Reg(DATA_FORMAT0x0b);//设置为4线式SPI模式中断至低电平有,测量范围±16g,13位模式,右对齐(LSB)模式,并带有符号扩展功能
  SPI2_RW_Reg(THRESH_SHOCK0x03);//冲击阈值2.34g 
  SPI2_RW_Reg(BW_RATE0x0A);//默认值为0x0A,转换为100Hz的输出数据速率
  SPI2_RW_Reg(POWER_CTL0x08);//选择电源模式:正常模式
  SPI2_RW_Reg(INT_ENABLE0x80);//使能 DATA_READY 中断
//  SPI2_RW_Reg(INT_MAP0x80);
  
  SPI2_RW_Reg(OFSX0x00);//X 偏移量
  SPI2_RW_Reg(OFSY0x00);//Y 偏移量
  SPI2_RW_Reg(OFSZ0x05);//Z 偏移量
}
//****************************************************************************************************
//函数:uchar SPI2_Read(uchar reg)
//功能:ADXL375的SPI时序
//****************************************************************************************************
uint8_t SPI2_Read(uint8_t address)
{
  uint8_t reg_val;
  ADXL375_CS_0;           // CSN low initialize SPI communication...
  SPI2_RW(address|sr);            // Select register to read from..
  reg_val = SPI2_RW(0xff);    // ..then read registervalue
  ADXL375_CS_1;         // CSN high terminate SPI communication
  return(reg_val);       // return register value
}
//***************************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5534  2017-04-05 17:21  ADXL375驱动代码\ADXL375.c

     文件       3521  2017-04-05 17:03  ADXL375驱动代码\ADXL375.h

     目录          0  2017-04-06 09:10  ADXL375驱动代码

----------- ---------  ---------- -----  ----

                 9055                    3


评论

共有 条评论

相关资源