ARM_core 기반 리눅스 BSP 개발/Raspberry_PI Kernel build

[Raspberry_PI]_GPIO PIN 제어

juniha 2025. 6. 18. 19:39

gcc 컴파일러 작업

라즈베리파이의 GPIO핀을 제어하기 위한 라이브러리를 설치

git clone <https://github.com/WiringPi/WiringPi.git>
cd WiringPi
./build
gpio -v

.

 

GPIO readall 명령을 이용하여 Pin 번호 확인

#include <wiringPi.h>   // WiringPi 라이브러리 헤더 (GPIO 제어 함수 제공)
#include <stdio.h>      // 표준 입출력 함수 헤더 (printf 사용)

// 사용할 핀 번호 정의 (WiringPi 번호 체계)
// 실제 라즈베리 파이 BCM 핀 번호와 다를 수 있음 (예: GPIO 17이 WiringPi 0)
#define LED_PIN 0       

int main(void) {
    // WiringPi 라이브러리 초기화
    // 실패하면 -1을 반환하므로, 에러 메시지를 출력하고 프로그램 종료
    if (wiringPiSetup() == -1) {
        printf("wiringPi setup failed!\n");
        return 1;  // 비정상 종료 코드 반환
    }

    // LED_PIN 핀을 출력 모드로 설정
    pinMode(LED_PIN, OUTPUT);

    // 무한 루프: LED를 주기적으로 ON/OFF
    while (1) {
        digitalWrite(LED_PIN, HIGH);  // LED 핀에 HIGH 신호 출력 (LED ON)
        delay(1000);                  // 1000ms (1초) 동안 대기

        digitalWrite(LED_PIN, LOW);   // LED 핀에 LOW 신호 출력 (LED OFF)
        delay(1000);                  // 1000ms (1초) 동안 대기
    }

    return 0;  // (도달하지 않음, 루프 무한 반복)
}

 

동작 확인 명령어

gcc led_blink.c -o led_blink -IWiringPi/wiringPi -LWiringPi/wiringPi -lwiringPi

 

 

동작 결과 

LED가 1초에 한번씩 5번 깜빡이고 동작을 멈주는 것을 확인 할 수 있다.