This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ads1230驱动问题,貌似没有工作,

Other Parts Discussed in Thread: 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;
}