资源简介

STM32驱动AD7175源码.rar
调用方法不明白可以看我帖子
http://bbs.elecfans.com/jishu_1719716_1_1.html
里面也有我QQ

资源截图

代码片段和文件信息

#include “ad7172.h“
#include “delay.h“
//uint8_t DataRead[4];
void AD_Delay(void)
{
    uint8_t i = 1j;
    for(j=0; j}
 
long ReadAD7172()
{
 long d = 0;
 uint8_t i = 0;
for(i = 0; i < 24; i++)
{
d <<= 1;
SCLK_L;
AD_Delay();
if(DOUT_HorL)
d |= 0x00000001;
else
d &= 0xFFFFFFFE;
SCLK_H;
AD_Delay();
}
// if(a == BIPOLAR)
// {
        if(d < 0x800000)
            d = -(0x800000 - d); // 是负数变成补码
        else
            d &= 0x007FFFFF;
 
// }
// result = d;
return d;
}
uint8_t ReadAD7172_8B()
{
 uint8_t d = 0;
 uint8_t i = 0;
// while(DOUT_HorL);
// CS_L;
for(i = 0; i < 8; i++)
{
d <<= 1;
SCLK_L;
AD_Delay();
if(DOUT_HorL)
d |= 0x01;
else
d &= 0xFE;
SCLK_H;
AD_Delay();
}
return d;
}
/******************************************************************
*函数描述:写AD7714
*局部变量:
*返回变量:
******************************************************************/
void WriteAD7172_8Bit(uint8_t d)
{
uint8_t i = 0;
for(i = 0; i < 8; i++)
{
SCLK_L;
AD_Delay();
if(d & 0x80)
DIN_H;
else
DIN_L;
SCLK_H;
AD_Delay();
d <<= 1;
}
DIN_H;
}
void AD7172_Reset(void)
{
unsigned char i=0;
SCLK_H;
CS_L;
DIN_H;
for(i=0; i < 12; i++)
{
WriteAD7172_8Bit(0xFF);
}
CS_H;
}
/******************************************************************
*函数描述:初始化AD7714电压测量AIN2通道
*局部变量:
*返回变量:
******************************************************************/
void InitAD7172_V(u8 sample)
{
  uint32_t i;
AD7172_Reset();
delay_us(200);
//7175 可用
CS_L;
WriteAD7172_8Bit(0x01);
WriteAD7172_8Bit(0x00);
WriteAD7172_8Bit(0x0C);
CS_H;
CS_L;
WriteAD7172_8Bit(0x02);
WriteAD7172_8Bit(0x08);
WriteAD7172_8Bit(0x00);
CS_H;
CS_L;
WriteAD7172_8Bit(0x10); //选择通道0的 AN0 AN1
WriteAD7172_8Bit(0x80);
WriteAD7172_8Bit(0x01);
CS_H;
CS_L;
WriteAD7172_8Bit(0x20);
WriteAD7172_8Bit(0x1C);
WriteAD7172_8Bit(0x00);
CS_H;
CS_L;
WriteAD7172_8Bit(0x28); //选择滤波频率
WriteAD7172_8Bit(0x00);
WriteAD7172_8Bit(sample); //?为05的时候可以50k  00的时候反而不行 原因未知
CS_H;
//连续采集
CS_L;
WriteAD7172_8Bit(0x02);
WriteAD7172_8Bit(0x00);
WriteAD7172_8Bit(0x80);
CS_H;
DIN_H;
}
void InitAD7172_V_Nomal(u8 sample)
{
  uint32_t i;
AD7172_Reset();
delay_us(200);
//7175 可用
CS_L;
WriteAD7172_8Bit(0x01);
WriteAD7172_8Bit(0x00);
WriteAD7172_8Bit(0x0C);
CS_H;
CS_L;
WriteAD7172_8Bit(0x02);
WriteAD7172_8Bit(0x00);
WriteAD7172_8Bit(0x00);
CS_H;
CS_L;
WriteAD7172_8Bit(0x10); //选择通道0的 AN0 AN1
WriteAD7172_8Bit(0x80);
WriteAD7172_8Bit(0x01);
CS_H;
CS_L;
WriteAD7172_8Bit(0x20);
WriteAD7172_8Bit(0x1F);
WriteAD7172_8Bit(0x00);
CS_H;
CS_L;
WriteAD7172_8Bit(0x28); //选择滤波频率
WriteAD7172_8Bit(0x00);
WriteAD7172_8Bit(sample);
CS_H;
// //连续采集
// CS_L;
// WriteAD7172_8Bit(0x02);
// WriteAD7172_8Bit(0x00);
// WriteAD7172_8Bit(0x80);
// CS_H;
DIN_H;
}

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

     文件       3082  2019-04-26 09:26  AD7172.c

     文件      11598  2019-04-26 09:43  ad7172.h

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

                14680                    2


评论

共有 条评论