代码:ADC转换数据读取函数
void Read_ADC_Data(uint8_t *pBuffer, uint8_t Num_Byte)
{
uint8_t channel_1,channel_2;
uint32_t receive_status;
ADS_DRDY_LOW();
SPI2_CS_LOW();
receive_status = (uint32_t) ADS131A02_Write_CMD(ADS_CMD_NULL);
pBuffer[0] = (uint8_t ) (receive_status>>24);// 4字节状态响应
pBuffer[1] = (uint8_t ) (receive_status>>16);
pBuffer[2] = (uint8_t ) (receive_status>>8);
pBuffer[3] = (uint8_t ) (receive_status&0X0000FFFF);
for(channel_1=4; channel_1<(Num_Byte-4); channel_1++) pBuffer[channel_1] = SPI2_Write_Read(0X00);
for(channel_2=8; channel_2<Num_Byte; channel_2++) pBuffer[channel_2] = SPI2_Write_Read(0X00);
delay_ms(1);
SPI2_CS_HIGH();
ADS_DRDY_HIGH();
}
问题:我采用32位数据格式,禁用CRC和Hamming。初始化完成后,读取通道转换数据,总共12个字节(4字节状态响应,4字节通道1转换数据,4字节通道2转换数据)。为何读取的4字节状态为0X2274是正常的,而其余8字节通道数据为0呢?