大家好、
我编写了一段代码来读取 ADS1261数据。
通过 SPI 发送数据为0x12 0x02 0x00 0x00 0x00 0x00 0x00 0x00
响应数据为0xFF 0x08 0x03 0x11 0x88 0xFF 0x00、而第6个字节应为转换结果的 LSB。 但我读了很多次。 LSB 的 ALAWAFF 为0xFF、而 MSB 和 MID 可以相应地改变。
BTW。 每次数据表被解密时、我都尝试发送6个字节、但无法连续启动转换。 当我发送7 个字节时、它起作用。
寄存器读出的数据是
0x81 0x01 0x04 0x01 0x00 0x00 0x05 0x00 0x00 0x00 0x00 0x00 0x40 0xFF 0x00 0x80 0xBB 0x00
有人能帮我解决这个问题吗?
BR。
稍等。
uint32_t ADS1261_Read_Data ()
{
uint32_t ADC_Data_Temp = 0;
ADC_Start;
while (HAL_GPIO_ReadPin (AD_DRDY_GPIO_Port、AD_DRDY_Pin)){}
G_aSPI1_TxBuf[0]= 0x12;
G_aSPI1_TxBuf[1]= 0x02;
G_aSPI1_TxBuf[2]= 0x00;
G_aSPI1_TxBuf[3]= 0x00;
G_aSPI1_TxBuf[4]= 0x00;
G_aSPI1_TxBuf[5]= 0x00;
G_aSPI1_TxBuf[6]= 0x00;
mx_SPI1_TxRxData (g_aSPI1_TxBuf、g_aSPI1_RxBuf、7);
ADC_RESULT_Temp[0]= g_aSPI1_RxBuf[3];
ADC_RESULT_Temp[1]=g_aSPI1_RxBuf[4];
ADC_RESULT_Temp[2]=g_aSPI1_RxBuf[5];
ADC_RESULT_Temp[3]=g_aSPI1_RxBuf[6];
ADC_Data_Temp = g_aSPI1_RxBuf[5]+(g_aSPI1_RxBuf[4]* 0x100)+(g_aSPI1_RxBuf[3]* 0x10000);
返回 ADC_Data_Temp;
}