ST/STM32F103C8

STM32F103C8 - RTC(Systick handler)

engineer4ever 2025. 8. 8. 10:22

 

MCU
STM32F103(ST)
IDE
Atollic(TrueSTUDIO), STM32CubeMX
목표
HAL driver를 사용하여 RTC tick을 이용해 LED를 ON-OFF 한다.

 

1. ATOLLIC 실행

RTC 설정은 STM32F103C8 - Project 생성 및 기본 설정 을 참고(이 과정이 선행 되어야함)

RTC tick을 이용해 LED를 ON-OFF 하는데 구현 방법은 2가지로 나눌 수 있다.

 

1. void SysTick_Handler()에 바로 작성

extern uint32_t uwTick;

void SysTick_Handler(void)
{
	/* USER CODE BEGIN SysTick_IRQn 0 */

	/* USER CODE END SysTick_IRQn 0 */
	HAL_IncTick();
	/* USER CODE BEGIN SysTick_IRQn 1 */
	if ( uwTick % 500 == 0 )
	{
		HAL_GPIO_TogglePin (LED_WDT_GPIO_Port, LED_WDT_Pin);

	}
	/* USER CODE END SysTick_IRQn 1 */
}
 

 

2. void SysTick_Handler()에서 HAL_SYSTICK_IRQHandler();를 호출하게 수정

void SysTick_Handler(void)
{
	/* USER CODE BEGIN SysTick_IRQn 0 */

	/* USER CODE END SysTick_IRQn 0 */
	HAL_IncTick();
	/* USER CODE BEGIN SysTick_IRQn 1 */
	HAL_SYSTICK_IRQHandler();
	/* USER CODE END SysTick_IRQn 1 */
}
 

HAL_SYSTICK_IRQHandler();를 따라가 보면 HAL_SYSTICK_Callback();를 호출하게 되어있다.

void HAL_SYSTICK_IRQHandler(void)
{
	HAL_SYSTICK_Callback();
}
 

바로 아래 HAL_SYSTICK_Callback(); 함수가 있는데 비어있다.

__weak void HAL_SYSTICK_Callback(void)
{
  /* NOTE : This function Should not be modified, when the callback is needed,
            the HAL_SYSTICK_Callback could be implemented in the user file
   */
}
 

Callback 함수를 작성해 준다.

extern uint32_t uwTick;

void HAL_SYSTICK_Callback(void)
{
	if ( uwTick % 500 == 0) {
		HAL_GPIO_TogglePin (LED_WDT_GPIO_Port, LED_WDT_Pin);
	}
}
 

'ST > STM32F103C8' 카테고리의 다른 글

STM32F103C8 - ADC(DMA interrupt)  (1) 2025.08.08
STM32F103C8 - I2C(EEPROM)  (1) 2025.08.08
STM32F103C8 - PWM  (0) 2025.08.08
STM32F103C8 - TIMER  (1) 2025.08.08
STM32F103C8 - ADC(DMA)  (0) 2025.08.08