Other Parts Discussed in Thread: ADS7028
您好、
我尝试 使用 SPI DMA 实现 ads7028 多通道采样、但我只得到 0。
连单个频道都不适合我 单通道的配置为:
writeSingleRegister (OPMODE_CFG_ADDRESS、OPMODE_CFG_CONV_MODE_Autonomous_MODE);
writeSingleRegister (AUTO_SEQ_CHSEL_ADDRESS、0x20);
writeSingleRegister (SEQUENCE_CFG_ADDRESS、
SEQUENCE_CFG_SEQ_MODE_AUTO_SEQ | SEQUENCE_CFG_SEQ_START_ENABLED);
Read data 函数:
uint8_t readDataDma (uint8_t *dataRx、SPI_HandleTypeDef * handle)
{
uint8_t ret = 0;
uint8_t dataTx[4]={ 0 };
uint8_t numberOfBytes = spi_crc_enabled? 4:3;
IF (SPI_CRC_ENABLED)
{
dataTx[3]= calculateCRC (dataTx、numberOfBytes - 1、CRC_initial_SEED);
}
ads7028_setCS (low);
RET = HAL_SPI_TransmitReceiver_DMA (handle、&dataTx[0]、dataRx、numberOfBytes);
}
然后在 SPI_DMA 回调时将 CS 引脚再次设置为高电平。
建议我做什么不好?
我的自主模式只有 0。 自动时序控制模式工作。

