STM32L053+;SPI仅在第一个周期工作

STM32L053+;SPI仅在第一个周期工作,stm32,spi,hal,Stm32,Spi,Hal,实际上,我正在使用微控制器STM32L053进行测试,并且我正在使用带hal的stm32cubeide 这是我使用微控制器和ide的第一步。我使用的是我使用SPI和电子纸stm32库()连接的电子纸 在我的第一个周期中,电子纸运行良好,我可以显示一些图形和文本,但当再次启动时,电子纸不会显示任何内容。如果我使用停止模式,情况也类似。如果我使用待机模式,电子纸工作良好,因为在此模式下微控制器复位,程序启动 我认为SPI接口有问题 这是我的SPI专业化代码: /** * @brief SPI1 I

实际上,我正在使用微控制器STM32L053进行测试,并且我正在使用带hal的stm32cubeide

这是我使用微控制器和ide的第一步。我使用的是我使用SPI和电子纸stm32库()连接的电子纸

在我的第一个周期中,电子纸运行良好,我可以显示一些图形和文本,但当再次启动时,电子纸不会显示任何内容。如果我使用停止模式,情况也类似。如果我使用待机模式,电子纸工作良好,因为在此模式下微控制器复位,程序启动

我认为SPI接口有问题

这是我的SPI专业化代码:

/**

* @brief SPI1 Initialization Function

* @param None

* @retval None

*/

static void MX_SPI1_Init(void)

{ 
/* USER CODE BEGIN SPI1_Init 0 */

/* USER CODE END SPI1_Init 0 */

/* USER CODE BEGIN SPI1_Init 1 */

/* USER CODE END SPI1_Init 1 */

/* SPI1 parameter configuration*/

hspi1.Instance = SPI1;

hspi1.Init.Mode = SPI_MODE_MASTER;

hspi1.Init.Direction = SPI_DIRECTION_1LINE;

hspi1.Init.DataSize = SPI_DATASIZE_8BIT;

hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;

hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;

hspi1.Init.NSS = SPI_NSS_SOFT;

hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;

hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;

hspi1.Init.TIMode = SPI_TIMODE_DISABLE;

hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;

hspi1.Init.CRCPolynomial = 7;

if (HAL_SPI_Init(&hspi1) != HAL_OK) 
{ 
Error_Handler(); 
} 
/* USER CODE BEGIN SPI1_Init 2 */

/* USER CODE END SPI1_Init 2 */ 
}
这是在停止模式下输入的代码,以及它们执行的下一个代码行:

/* Enter Stop Mode */

__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

HAL_UART_Transmit(&hlpuart1, (uint8_t*)”Sleep mode activated...\r\n”, sizeof(“Sleep mode activated...\r\n”), 20);

HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);


/* Configures system clock after wake-up from STOP: enable HSE, PLL and select

PLL as system clock source (HSE and PLL are disabled in STOP mode) */

//HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

MX_ADC_Init();

MX_LPUART1_UART_Init();

MX_USART2_UART_Init();

MX_RTC_Init();

MX_SPI1_Init();

MX_TIM2_Init();

HAL_UART_Transmit(&hlpuart1, (uint8_t*)”Wake-Up...\r\n”, sizeof(“Wake-Up...\r\n”), 20);