2025-02-20 05:03 AM
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!
2025-02-20 05:06 AM
Hello @stoyanoff and welcome to the community,
Could you please attach your ioc file?
2025-02-20 06:42 AM
2025-02-20 02:32 PM
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?
2025-02-21 02:31 AM - edited 2025-02-21 02:33 AM
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?