목차
[WAT-STM32-2.8] 24번 예제 SysTick 로 정확히 1초마다 LED ON/OFF
WAT-STM32-2.8 예제 중 24번으로 정확한 시간을 만드는 예제입니다.
1mS 마다 호출되는 함수를 만들고 그 함수 안에서 1초, 2초를 확인하여 LED를 ON/OFF 할 것입니다.
SysTick 초기화
void WAT_STM32_SysTickInit(uint32_t HzPreSecond)
{
if (SysTick_Config(SystemCoreClock / HzPreSecond))
{
/* Capture error */
while (1);
}
}
1mS 마다 호출
// 1ms 마다 실행
void SysTick_Handler_User(void)
{
static uint32_t TimeIncrease = 0;
if((TimeIncrease%2000) == 0) // 2초(1ms x 2000) 가 되면 ON
{
LED1OBB = 0;
LED2OBB = 0;
LED3OBB = 0;
TimeIncrease = 0;
}
else if((TimeIncrease%1000) == 0) // 1초(1ms x 1000) 가 되면 OFF
{
LED1OBB = 1;
LED2OBB = 1;
LED3OBB = 1;
}
TimeIncrease++;
}
주요 코드
main.c 파일 일부입니다.
// WAT_STM3228_24 systick 로 정확한 시간(1 Second) 마다 LED ON/OFF
// 출처: https://docs.whiteat.com/?p=4334
//
#include "WAT_STM32F103RB_LIB.h"
// 1ms 마다 실행
void SysTick_Handler_User(void)
{
static uint32_t TimeIncrease = 0;
if((TimeIncrease%2000) == 0) // 2초(1ms x 2000) 가 되면 ON
{
LED1OBB = 0;
LED2OBB = 0;
LED3OBB = 0;
TimeIncrease = 0;
}
else if((TimeIncrease%1000) == 0) // 1초(1ms x 1000) 가 되면 OFF
{
LED1OBB = 1;
LED2OBB = 1;
LED3OBB = 1;
}
TimeIncrease++;
}
int main(void)
{
WAT_STM32_SysTickInit(1000);
while (1)
{
}
}
결과화면

WAT-STM32-2.8보드 전체 예제
제품 구매
WAT-STM32-2.8 [STM32F103RB Board + 2.8인치 TFT LCD 터치 세트] 는 https://kit128.com/goods/view?no=221 에서 구매하실 수 있습니다.


