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.

ADS127L01工作不正常

Other Parts Discussed in Thread: ADS127L01

使用STM32与ADS127L01进行通信,使用硬件SPI模式,在读取时,ADS127L01总是间歇工作,不工作的时间较长,因为DRDY一直处于高电平。

电路板未使用顺序供电,所以按照手册里,所有上电稳定以后,进行了RESET/PWDN引脚下拉,然后再上拉。但是仍然无法使得芯片正常工作。芯片所有供电都正常,参考电压2.5V。

void ads127_init(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12); //RESET 低有效
delay_ms(500);
GPIO_SetBits(GPIOB,GPIO_Pin_12); //RESET 完成
delay_ms(1000);
delay_ms(1000);

GPIO_ResetBits(GPIOA,GPIO_Pin_4); //CS拉低,使能ADS127
delay_ms(10);

SPI1_ReadWriteByte(0x41); //开始进行写寄存器
SPI1_ReadWriteByte(0x01);
SPI1_ReadWriteByte(0x02);
SPI1_ReadWriteByte(0x00);
SPI1_ReadWriteByte(START); //开始进行数据转换
}

int main(void)
{
u32 data=0;
u32 t=0;
delay_init(); //延时函数初始化
Usart1_Init(115200); //串口初始化为115200
IO_Init(); //初始化与IO连接的硬件接口
SPI1_Init(); //初始化SPI
SPI1_SetSpeed(SPI_BaudRatePrescaler_8); //设置为9M时钟,高速模式

ads127_init();

while(1)
{
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0))
{
t++;
if(t>=10000)
{
t=0;
ads127_init();
}
}
SPI1_ReadWriteByte(RDATA);
data = data + SPI1_ReadWriteByte(0x00);
data <<= 8;
data = data + SPI1_ReadWriteByte(0x00);
data <<= 8;
data = data + SPI1_ReadWriteByte(0x00);
UsartPrintf(USART1,"%x\r\n",data);
data=0;
}
}