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 |