STM32G0B1 Timer 6 - program crash when timer started with interrupt
Hi,
I am using STM32G0B1VET6 on my custom board. I want a delay of 0.2 and 0.3us. Hence I have used timer 6 to achieve this delay. But my program leads to crash when API - HAL_TIM_Base_Start_IT(&htim6) is executed.
My settings for Timer 6 are as follows:


My clock configuration is as given below:

Generated code:
static void MX_TIM6_Init(void)
{
/* USER CODE BEGIN TIM6_Init 0 */
/* USER CODE END TIM6_Init 0 */
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM6_Init 1 */
/* USER CODE END TIM6_Init 1 */
htim6.Instance = TIM6;
htim6.Init.Prescaler = 0;
htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
htim6.Init.Period = 13;
htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM6_Init 2 */
/* USER CODE END TIM6_Init 2 */
}
void TIM6_DAC_LPTIM1_IRQHandler(void)
{
/* USER CODE BEGIN TIM6_DAC_LPTIM1_IRQn 0 */
/* USER CODE END TIM6_DAC_LPTIM1_IRQn 0 */
HAL_TIM_IRQHandler(&htim6);
/* USER CODE BEGIN TIM6_DAC_LPTIM1_IRQn 1 */
delay_flag = true;
/* USER CODE END TIM6_DAC_LPTIM1_IRQn 1 */
}
My code for delay function:
void delay_us(uint16_t delay)
{
delay_flag = false;
htim6.Init.Period = delay;
if (HAL_TIM_Base_Start_IT(&htim6) != HAL_OK) //this function crash here
return;
while(!delay_flag);
}
Please guide.
Thanks,
pradeep

