Skip to main content
STawn.1
Associate
August 4, 2020
Solved

Bug in generated code for MX_LPUART1_UART_Init

  • August 4, 2020
  • 6 replies
  • 3304 views

In a project for a STM32L4S7ZITx with LPUART1 enabled the following code is generated:

/**
 * @brief LPUART1 Initialization Function
 * @param None
 * @retval None
 */
static void MX_LPUART1_UART_Init(void)
{
 
 /* USER CODE BEGIN LPUART1_Init 0 */
 
 /* USER CODE END LPUART1_Init 0 */
 
 /* USER CODE BEGIN LPUART1_Init 1 */
 
 /* USER CODE END LPUART1_Init 1 */
 hlpuart1.Instance = LPUART1;
 hlpuart1.Init.BaudRate = 115200;
 hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
 hlpuart1.Init.StopBits = UART_STOPBITS_1;
 hlpuart1.Init.Parity = UART_PARITY_NONE;
 hlpuart1.Init.Mode = UART_MODE_TX_RX;
 hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
 hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
 hlpuart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
 hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
 hlpuart1.FifoMode = UART_FIFOMODE_DISABLE;
 if (HAL_UART_Init(&hlpuart1) != HAL_OK)
 {
 Error_Handler();
 }
 if (HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
 {
 Error_Handler();
 }
 if (HAL_UARTEx_SetRxFifoThreshold(&hlpuart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
 {
 Error_Handler();
 }
 if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
 {
 Error_Handler();
 }
 /* USER CODE BEGIN LPUART1_Init 2 */
 
 /* USER CODE END LPUART1_Init 2 */
 
}

Line 39 is the only place that huart1 is referenced in any of the generated code. I assume this is meant to be hlpuart1.

This topic has been closed for replies.
Best answer by Khouloud ZEMMELI

@STawn.1​  Issue confirmed and it will be fixed,

Thanks for your feedback.

Khouloud

6 replies

Khouloud ZEMMELI
ST Employee
August 4, 2020

Hello @STawn.1​ 

It will be internally checked

Regards,

Khouloud

Khouloud ZEMMELI
Khouloud ZEMMELIBest answer
ST Employee
August 5, 2020

@STawn.1​  Issue confirmed and it will be fixed,

Thanks for your feedback.

Khouloud

CBald
Associate III
September 26, 2020

Chiming in that this issue also just affected me today, so it is still not fixed.

Khouloud ZEMMELI
ST Employee
September 28, 2020

Hello @CBald​ 

The fix will be available for the next CubeMX release (6.1.0).

Regards,

Khouloud

Mhd
Visitor II
September 29, 2020

I'd like to add to this bug: it also happens in the LPUART1_IRQHandler:

void LPUART1_IRQHandler(void)
{
 /* USER CODE BEGIN LPUART1_IRQn 0 */
 
 /* USER CODE END LPUART1_IRQn 0 */
 HAL_UART_IRQHandler(&huart1); //<--- Here, huart1 should be hlpuart1
 /* USER CODE BEGIN LPUART1_IRQn 1 */
 
 /* USER CODE END LPUART1_IRQn 1 */
}

Khouloud ZEMMELI
ST Employee
September 29, 2020

Hi @Mhd​ 

Could you please share your ioc file ?

Thanks

Khouloud

CBald
Associate III
September 29, 2020

Mine exhibits the same behavior, huart instead of hlpuart in the IRQHandler

MQi.1
Senior II
January 7, 2021

I met the same error:

static void MX_LPUART1_UART_Init(void)
{
 
 /* USER CODE BEGIN LPUART1_Init 0 */
 
 /* USER CODE END LPUART1_Init 0 */
 
 /* USER CODE BEGIN LPUART1_Init 1 */
 
 /* USER CODE END LPUART1_Init 1 */
 hlpuart1.Instance = LPUART1;
 hlpuart1.Init.BaudRate = 115200;
 hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
 hlpuart1.Init.StopBits = UART_STOPBITS_1;
 hlpuart1.Init.Parity = UART_PARITY_NONE;
 hlpuart1.Init.Mode = UART_MODE_TX_RX;
 hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
 hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
 hlpuart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
 hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
 hlpuart1.FifoMode = UART_FIFOMODE_DISABLE;
 if (HAL_UART_Init(&hlpuart1) != HAL_OK)
 {
 Error_Handler();
 }
 if (HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
 {
 Error_Handler();
 }
 if (HAL_UARTEx_SetRxFifoThreshold(&hlpuart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
 {
 Error_Handler();
 }
 if (HAL_UARTEx_DisableFifoMode(&hlpuart1) != HAL_OK)
 {
 Error_Handler();
 }
 /* USER CODE BEGIN LPUART1_Init 2 */
 
 /* USER CODE END LPUART1_Init 2 */
 
}

what maybe the reason?

Khouloud ZEMMELI
ST Employee
January 7, 2021

Hi @MQi.1​ 

Can you please explain what's your problem ?

Thanks, Khouloud

MQi.1
Senior II
January 7, 2021

And, under it was another "error: invalid storage class for function"

static void MX_GPIO_Init(void)
{
 GPIO_InitTypeDef GPIO_InitStruct = {0};
 
 /* GPIO Ports Clock Enable */
 __HAL_RCC_GPIOG_CLK_ENABLE();
 HAL_PWREx_EnableVddIO2();
 __HAL_RCC_GPIOB_CLK_ENABLE();
 
 
 /*Configure GPIO pin Output Level */
 HAL_GPIO_WritePin(LED_BLUE_GPIO_Port, LED_BLUE_Pin, GPIO_PIN_RESET);
 
 /*Configure GPIO pin : LED_BLUE_Pin */
 GPIO_InitStruct.Pin = LED_BLUE_Pin;
 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
 GPIO_InitStruct.Pull = GPIO_NOPULL;
 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
 HAL_GPIO_Init(LED_BLUE_GPIO_Port, &GPIO_InitStruct);
 
}