Skip to main content
Visitor II
February 20, 2025
Question

STM32L431CBT6 blocks in HAL_Delay()

  • February 20, 2025
  • 5 replies
  • 562 views

Greetings! I am using STM32 for a very first time. I made my custom PCB with 10MHz oscillator. In the Clock Configuration window I have sellected the PLL and the HCLK is set to 80MHz (max for the uC). The outputs are all 80MHz. So I made a simple blink test program:

 

 /* USER CODE BEGIN WHILE */
 while (1)
 {
	 HAL_GPIO_TogglePin(LED_1_GPIO_Port, LED_1_Pin);
	 HAL_Delay(1000);
 /* USER CODE END WHILE */

 /* USER CODE BEGIN 3 */
 }

 

The problem is my code blocks in HAL_Delay(). Here to be precise:

 

while ((HAL_GetTick() - tickstart) < wait)
 {
 }

 

I checked with oscilloscope and the quarz is working! I also tried different interrupt priorities for Sys Tick Timer.

Any other suggestions?

I have no experience with these uC.

Thanks!

    This topic has been closed for replies.

    5 replies

    Technical Moderator
    February 20, 2025

    Hello @stoyanoff and welcome to the community,

    Could you please attach your ioc file?

    stoyanoffAuthor
    Visitor II
    February 20, 2025

    Here you are!

    Technical Moderator
    February 21, 2025

    Hello,

    Is that possible to share the part of the crystal connected to the MCU + the part of the LED connection with the MCU.

    When you set a break point at HAL_GPIO_TogglePin(LED_1_GPIO_Port, LED_1_Pin) are you able to reach it?

    Graduate II
    February 20, 2025

    Though it may not matter with what code you have that I see, you've have the Systick priority set to 14. Usually by default, it should be 0 like all the other interrupts.

     

    Are you sure you've selected the correct pin for the LED? 

    stoyanoffAuthor
    Visitor II
    February 25, 2025

    Sorry for the late responce! It seems my pcb is working correctly in release mode => when I program the uC. So I suppose the problem is in the selected debuger type. I am using ST-Link as a tool and I connected every jtag related pin to the connector. I didn`t know what to expect so I prepared the pcb for everything. I have TRST, TDI, SWDIO, TCK, TDO and NRST connected to ST-link. In the .ioc I have selected JTAG(5 pins). Is that correct? What should I use for this controller?

    Thanks!

    Technical Moderator
    February 25, 2025

    Hello, 

    Please refer to the AN4555 / Figure 14. Reference design STM32L4 Series / STM32L4+ Series:

    mALLEm_0-1740487699761.png

    And use Serial Wire mode.

     

    stoyanoffAuthor
    Visitor II
    February 26, 2025

    Hi! I fixed it! It seems this uC demands ROM boot mode selected. I selected RAM in the beginning which is common for TI uC. I though I have to switch  to ROM when I am ready, but here this is not the case...