求助,我现在在使用STM32F407H723VET6对BMI270进行SPI通信,为什么我的给的程序发送的是0X80,但是SPI通过示波器抓出来的波形不是0X80,程序如下,能佛iu告知我是哪里出了问题,谢谢。
SPI3的配置如下:
void MX_SPI3_Init(void)
{
/* USER CODE BEGIN SPI3_Init 0 */
/* USER CODE END SPI3_Init 0 */
/* USER CODE BEGIN SPI3_Init 1 */
/* USER CODE END SPI3_Init 1 */
hspi3.Instance = SPI3;
hspi3.Init.Mode = SPI_MODE_MASTER;
hspi3.Init.Direction = SPI_DIRECTION_2LINES;
hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi3.Init.NSS = SPI_NSS_SOFT;
hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi3.Init.CRCPolynomial = 0x0;
if (HAL_SPI_Init(&hspi3) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN SPI3_Init 2 */
/* USER CODE END SPI3_Init 2 */
}
在主函数中的循环中,每隔50ms执行一次下面函数:
SPI3_CSB_L;
//HAL_SPI_Receive(BMI270_SPI,Reg | BMI270_SPI_R,Temp_Data,Len + 1,1);
// HAL_SPI_TransmitReceive(&BMI270_SPI,0x80,Temp_Data,3,1000);
HAL_SPI_Transmit_IT(&BMI270_SPI, 0x80,2); SPI3_CSB_H; SPI3_CSB_L; //HAL_SPI_Receive(BMI270_SPI,Reg | BMI270_SPI_R,Temp_Data,Len + 1,1); // HAL_SPI_TransmitReceive(&BMI270_SPI,0x80,Temp_Data,3,1000); HAL_SPI_Transmit_IT(&BMI270_SPI, 0x80,1); SPI3_CSB_H;
|