반도체 소프트웨어

GPIO 이용한 LED 제어 본문

RTOS

GPIO 이용한 LED 제어

반도체 소프트웨어 엔지니어 2024. 1. 4. 20:41
  1. 아무래도 다음과 같은 잉여 핀을 GPIO 용도로 셋팅해야하는 것으로 보임(초반에 이상한 핀을 사용했더니 오류 발생)
  2. LED 점멸 영상 with GPIO
  3. 태스크 생성해서 PG2 핀을 사용한 빨강색 LED 제어 소스코드
/* FreeRTOS.org includes. */
#include "main.h"
#include "cmsis_os.h"
#include <stdio.h>

/* MACRO Variable		*/
#define TASK_MAIN_PRIO	20

/* TASKS Implementation	*/
static void TaskMain(void const *params);

/* Global Variable		*/
TaskHandle_t xHandleMain;

void USER_TASK(void)
{
	xTaskCreate((TaskFunction_t)TaskMain,
				"TaskMain",
				256,
				NULL,
				TASK_MAIN_PRIO,
				&xHandleMain );
}

static void TaskMain(void const *params)
{
	printf("1. USER TASK CREATE SUCCESS!\n");

	while (1)
	{
		HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
		HAL_Delay(500);

		HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_SET);
		HAL_Delay(500);

		HAL_GPIO_WritePin(GPIOG, GPIO_PIN_2, GPIO_PIN_SET);
		HAL_Delay(500);

		HAL_GPIO_WritePin(GPIOG, GPIO_PIN_2, GPIO_PIN_RESET);
		HAL_Delay(500);
	}
}