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.

ADS1256与STM32通过SPI通讯,初始化时间很长,估计得有2秒-3秒左右,采样后串口输出约有1-2秒,为何那么久? 差分采集数据暂无问题

Other Parts Discussed in Thread: ADS1256

u8 ADS1256_reg_Init[5]={
0x02, //状态寄存器初始化值
0x01, //模拟多路选择器初始化值
0x00, //AD控制寄存器初始化值
0x03, //数据速度寄存器初始化值
0x00, //I/O控制寄存器初始化值
};
ADS1256_Write_CS_H;
ADS1256_Write_SYNC_H;
ADS1256_Write_SCLK_L;
ADS1256_Write_RST_L;
ads1256_delayms(1);
ADS1256_Write_RST_H;
ads1256_delayms(1);
ADS1256_Write_CS_L;
ads1256_delayms(1);

ADS1256_write_reg(0x00,ADS1256_reg_Init[0]);//状态寄存器初始化
ads1256_delayus(1);

ADS1256_write_reg(0x01,ADS1256_reg_Init[1]);//模拟多路选择器初始化
ads1256_delayus(1);

ADS1256_write_reg(0x02,ADS1256_reg_Init[2]);//AD控制寄存器初始化
ads1256_delayus(1);

ADS1256_write_reg(0x03,ADS1256_reg_Init[3]);//数据速度寄存器初始化
ads1256_delayus(1);

ADS1256_write_reg(0x04,ADS1256_reg_Init[4]);//I/O控制寄存器初始化
ads1256_delayus(1);

if(ADS1256_reg_Init[1] != ADS1256_read_reg(0x01)) ReturnData = 1;

if(ADS1256_reg_Init[2] != ADS1256_read_reg(0x02)) ReturnData = 1;
ads1256_delayus(1);

if(ADS1256_reg_Init[3] != ADS1256_read_reg(0x03)) ReturnData = 1;
ads1256_delayus(1);

if(ADS1256_reg_Init[4] != ADS1256_read_reg(0x04)) ReturnData = 1;
ads1256_delayus(1);


while(ADS1256_Read_DRDY);

// for (ii=0;ii<6000;ii++)
// {if(ADS1256_Read_DRDY == 0) break;}

ADS1256_SELFCAL(); //补偿和增益自校准
ads1256_delayus(5);
ADS1256_SYNC(); //AD转换同步
ads1256_delayms(20);
ADS1256_WAKEUP(); //退出待机模式
ads1256_delayus(5);

return(ReturnData);