반응형
@@ GPIO_Output 설정과 HAL_Delay()를 사용하여 led를 제어해 보자.
@@ 개발보드의 PC13에 led가 연결되어 있다.
1. 기본 cubemx 설정은 아래를 참조하자.
2. pinout에서 PC13 마우스 좌클릭 > GPIO_Output 선택
@ 1번 기본 cubemx 설정 참고하여 GENERATE CODE 실시
1) HAL_GPIO_WritePin() 함수를 사용하여 500ms 주기로 led 끄고 켜기
while (1)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
HAL_Delay(500); // 실제 499를 넣어야 하나 편의상 500 사용
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(500); // 실제 499를 넣어야 하나 편의상 500 사용
}
2) HAL_GPIO_TogglePin() 함수를 사용하여 500ms 주기로 led 끄고 켜기
while (1)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(500); // 실제 499를 넣어야 하나 편의상 500 사용
}
3) HAL_Delay()
@ ms 단위로 딜레이를 줄 수 있음
@ 숫자 n을 입력값으로 넣을 경우 n+1ms 딜레이로 동작한다.
@ 0을 넣으면 1ms, 99를 넣으면 100ms 딜레이 동작
@ 딜레이 동안에는 다른 작업을 할 수 없음
@ HAL_Delay 함수 실행시 다른 작업을 수행할수 없음
@ 테스트나 강제로 안정화 시간을 줘야할때 주로 사용
728x90
'MCU > Learn STM32F103 basics' 카테고리의 다른 글
[stm32f103] micros(), delay_us() 사용하기 (0) | 2024.02.26 |
---|---|
[stm32f103] 정확한 주기로 led 제어하기 - HAL_GetTick() 사용 (0) | 2023.09.25 |
[stm32f103] STM32CubeMX 필수 기본 설정 (0) | 2023.09.23 |