一、双通道读取
1.CubeMX配置
①SPI1配置

不要使用Receive Only Master模式

②SPI2配置


2.程序
cpp
int16_t Data[4];
float raw_buf[4];
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_SPI1_Init();
MX_SPI2_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(CONVST_GPIO_Port, CONVST_Pin, 1);
HAL_Delay(100);
HAL_GPIO_WritePin(CONVST_GPIO_Port, CONVST_Pin, 0);
HAL_SPI_Receive_DMA(&hspi2,(uint8_t *)&Data[2], 2);
HAL_SPI_Receive(&hspi1, (uint8_t *)&Data[0], 2, 0xFF);
for(uint8_t ch=0; ch<4; ch++)
{
raw_buf[ch] = (float)Data[ch] / 32768.0f * 10.0f;
}
HAL_Delay(100);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
3.读取顺序

二、单通道读取
1.程序
仅使用一个通道读取即可
cpp
HAL_SPI_Receive(&hspi1, (uint8_t *)&Data[0], 4, 0xFF);
2.读取顺序
