ads1230驱动问题,貌似没有工作,
ads的DOUT一直是高电平,接不接压力传感器都是一样,请问是我没有启动ADS1230吗?PDWN一直拉低是可以的吧?
//STM8驱动,从MSP430上移植过来的
#include "ads1230.h"
void int_ADS1230IO(void)//相关引脚初始化
{
GPIO_Init(GPIOC,GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(GPIOC,GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(GPIOC,GPIO_PIN_4, GPIO_MODE_IN_PU_NO_IT );
}
/*****************************************************************************
函数名称:ReadAD(void)
功 能:读AD
入口参数:无
返回参数:AD的转换结果,为long型
使用资源:无
******************************************************************************/
long ReadAD(void)
{
long ADdatatemp=0; //设置AD转换的初始值为0
for(unsigned char i = 0;i < 20;i ++) //获取20位数据
{
ADS_CLK_H();
Delayus();
ADS_CLK_L();
ADdatatemp = ADdatatemp << 1;
if(ADS_DATA_HI) //AD输出的数据位是1?
{
ADdatatemp++;
}
Delayus();
}
for(unsigned char i = 0;i < 4;i ++) //为下一次转换准备
{
ADS_CLK_H(); //ADS_OUT |= ADS_CLK_BIT;
Delayus();
ADS_CLK_L(); //ADS_OUT &= ~ADS_CLK_BIT;
Delayus();
}
AD_OFF();
return(ADdatatemp);
}
/*****************************************************************************
函数名称:void OffsetAD()
功 能:一个补偿函数,补偿AD1230的标尺误差
入口参数:无
返回参数:无
使用资源:无
******************************************************************************/
void OffsetAD()
{
while(ADS_DATA_HI); //AD数据转换好?(ADS_IN & ADS_DATA_BIT)//AD_CLK输出位1
for(unsigned char i = 0;i < 26;i ++) //发送26个CLK
{
ADS_CLK_H();
Delayus();
ADS_CLK_L();
Delayus();
}
}
/*****************************************************************************
函数名称:void InitADline(void)
功 能:初始化AD控制线
入口参数:无
返回参数:无
使用资源:port2
******************************************************************************/
void InitADline(void)
{
int_ADS1230IO();//相关引脚初始化
ADS_CLK_L(); // ADS_OUT &= ~ADS_CLK_BIT;
AD_OFF(); // ADS_OUT &= ~ADS_PD_BIT;
}
PDWN一直拉低, Power-Down: Holding this pin low powers down the entire converter and resets the ADC.
正在复位中, 我看你先仔细检查一下你的硬件吧
你好,你这个问题解决了吗?
我也遇到同样的问题了,量了一下,dout从5v降到2.2V左右,还是降不下来,不知道怎么解决。
代码和你的基本上一样