C언어를 이용한 GPIO 입출력 제어
작성일: 2014년 10월 24일
C언어를 이용하여 라즈베리파이의 GPIO 입출력 단자를 제어하는 함수들을 알아보겠습니다. C언어를 이용하여 GPIO를 제어하기 위해서는 wiringPi라는 헤더파일을 추가하여야 합니다. wiringPi의 설치는 오로카의 강좌(링크)를 참고하세요.
라즈베리파이 GPIO 강좌 : 04. Output 테스트 (LED 출력, C언어)
#include <stdio.h>
int main (void)
//3. pin mode 설정
while(1){
//4-2. 읽기 digitalWrite(4, 1); delay(1000) ;
return 0 ;
위의 예제코드는 위 강좌에서 사용되는 소스코드를 약간 수정한 것인데요. C언어를 이용한 GPIO의 입출력 제어는 크게 4단계로 나뉘는 것을 보실 수 있어요.
첫번째는 wiringPi 헤더파일을 포함하는 것입니다.
두번째는 wiringPi를 초기화하는 작업인데, 대부분의 함수가 그러하듯 실패시 -1을 리턴하기 때문에 위와 같이 코드를 작성하였습니다.
세번째는 pin mode를 설정해주는 것입니다. 해당 핀 번호와 합께 입력핀으로 사용할 지 출력핀으로 사용할 지를 결정해줍니다.
마지막으로 설정된 핀을 이용하여 읽거나 쓰는 작업을 하는 것입니다.
그리고 완성된 소스코드는 wiringPi를 포함해서 컴파일을 해주시면 됩니다.
GPIO핀의 wiringPi 번호는 다음 명령어를 이용하여 확인할 수 있습니다. 그림도 첨부합니다.
라즈베리파이 B Type GPIO
[출처] [라즈베리파이] C언어를 이용한 GPIO 입출력 제어|작성자 Genie
|
댓글 3
-
묵묵이
2017.03.07 22:07
-
묵묵이
2017.03.12 07:59
c 컴파일
gcc -o gpio-sq gpio-sw.c -lwiringPi
C++ 컴파일
g++ -o helloraspi helloraspi.cpp
-
묵묵이
2017.03.12 16:06
sudo g++ -o 실행파일명 원본코드파일명 -l라이브러리명 ...
sudo : 관리자 권한 부여하여 실행
g++ : .cpp파일을 컴파일하기 위한 명령어
-o : .c or .cpp 파일을 실행파일로 변환하기 위한 옵션
sbgr : 실행파일 명 (각자 원하는대로)
sbgr.cpp : 원본코드 명 (각자 원본 .c or .cpp 파일명)
step.c : 내 코드에는 포함되어야 하는 코드라서 붙여넣기 했을 뿐, 선택
-lopencv_core ... -lopencv_calib3d : 각자 필요한 라이브러리 옵션 추가
-lwiringPi : 위와 마찬가지 원리로 wiringPi 가 필요해서 추가해 준 것
[출처] [라즈베리파이] 라즈비안 OS opencv 컴파일 방법|작성자 Genie
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | IR 리모콘 코드 따기 [1] | 묵묵이 | 2017.02.10 | 12 |
공지 | rc 카 작업용 [1] | 묵묵이 | 2017.02.07 | 11 |
공지 | [sketch_mydust] 미세멘지 측정기 작업 용 [2] | 묵묵이 | 2017.02.07 | 15 |
42 | RFID 정보를 읽고 쓸 수 있는 Proxmark3 | 묵묵이 | 2024.09.13 | 1 |
41 | [Android,Java] 안드로이드 - AES256 암호화 및 복호화 예제 소스 다운로드 | 묵묵이 | 2022.06.12 | 0 |
40 | 교류모터 속도제어킷 | 묵묵이 | 2021.05.02 | 7 |
39 | WiFiHTTPSServer test | 묵묵이 | 2020.03.02 | 7 |
38 | 8GLIB 유저매뉴얼 구글번역 | 묵묵이 | 2020.02.29 | 5 |
37 | 아두이노 2.4G 통신 모듈 사용하기 | 묵묵이 | 2019.04.04 | 9 |
36 | 전기가용량 계산 방법 - 전압, 전류와 전력량 측정에 대한 내용 | 묵묵이 | 2017.07.27 | 9 |
35 | 초저렴 iot 모듈 | 묵묵이 | 2017.06.04 | 8 |
34 | 적정 습도 / 미세먼지 값보정 | 묵묵이 | 2017.05.11 | 8 |
33 | 5V동작 20A 전류 센서 모듈 측정하기 ... [6] | 묵묵이 | 2017.04.17 | 16 |
32 | 먼지 센서 구매 하는곳 ... | 묵묵이 | 2017.04.15 | 7 |
31 | 라즈베리파이 프로그램 자동 실행 | 묵묵이 | 2017.03.12 | 8 |
30 | 라즈베리파일 설정 | 묵묵이 | 2017.03.11 | 6 |
» | [라즈베리파이] C언어를 이용한 GPIO 입출력 제어 [3] | 묵묵이 | 2017.03.07 | 5 |
28 | 와이파이 모듈(ESP8266) 공유기 연결 AT 명령어 [1] | 묵묵이 | 2017.02.26 | 6 |
27 | 아두이노 EEPROM 사용해보기 | 묵묵이 | 2017.02.20 | 6 |
26 | [아두이노] 0.96인치 OLED LCD 모듈 텍스트 출력 [2] | 묵묵이 | 2017.02.20 | 9 |
25 | HEX to DEC | 묵묵이 | 2017.02.10 | 5 |
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build