검색
홈으로 마이페이지 주문조회 장바구니
로그인
회원정보 게시판
회사소개 이메일
도서(BOOK)
키트(KIT)
특판 상품
졸업작품&전자기초
응용모듈
전자부품
모터
기구
엔클로져
고객센터 게시판
자유게시판
MCU 통합 게시판
강좌-RaspberryPi
강좌-드론(쿼드콥터)
강좌-아두이노(기초)
강좌-아두이노(응용)
신제품/신기술 소개
DIY 공작 게시판
윤교수의 연구실 칼럼
 ☎ : 02-776-4868

 F: 02-779-6757

☞ 평일 : 09~18시
☞ 주말 : 10~13시


국민822401-04-027758
☞ 예금주 : Ohm사
국민822401-04-027761
☞ 예금주 : R&C사
 
 
1 (주)알트소프트 사이트
 
2 LabVIEW 강좌 사이트
 
3 윤교수의 마이크로프로세서 월드
 
4 전자 엔지니어
 

 
강좌-RaspberryPi
 
[RaspberryPi] 21. GPIO - 시리얼 통신 실험 2
 
 
2014/03/16 (15:26)
작성자 : samdori 조회수 : 5854
 

21. GPIO – 시리얼 통신 실험 2

 

이전 강좌에서는 라즈베리 파이의 시리얼 포트를 콘솔로 이용하는 실험을 해 보았다. 이번 강좌에서는 시리얼 라이브러리를 이용하여 시리얼 통신 실험을 하는 방법에 대해서 알아 보도록 하겠다. 이번 강좌에서도 역시 GordonwiringPi 라이브러리를 이용하도록 하겠다.

 

wiringPi의 예제를 통해서 사용법을 알아 보도록 하자.

 

예제 파일이 있는 폴더로 이동 후에

 

pi@raspberrypi ~/wiringPi/examples $

 

예제를 로드 해 보자.

 

           $ nano serialRead.c

 

 

#include

#include

#include

 

#include

 

int main ()

{

  int fd ;

 

  if ((fd = serialOpen ("/dev/ttyAMA0", 115200)) < 0)

  {

    fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;

    return 1 ;

  }

 

// Loop, getting and printing characters

 

  for (;;)

  {

    putchar (serialGetchar (fd)) ;

    fflush (stdout) ;

  }

}

 

 

시리얼 통신 관련 라이브러리를 이용하려면, 아래와 같이 사용자의 프로그램에 반드시 포함하도

록한다.

 

#include

중요한 함수 몇 개를 살펴보도록 하자.

 

l  int serialOpen(char *device, int baud);

 

이 시리얼 오픈 함수는 시리얼 포트를 열고(open) 초기화 하며, 속도(baud rate)를 설정하는 함수

이다. device“/dev/ttyAMA0”로 오픈 할 시리얼 포트를 지정하며,  baud는 통신 속도롤 지정

하면 된다. 리턴 값으로는 파일 디스크립터나 에러가 있을 경우 -1을 넘겨 준다.

 

l  int serialGetchar(int fd);

 

이 함수는 시리얼 포트에서 한 바이트를 받아서 리턴 해 주는 함수이다. fd는 시리얼 포트를 오픈

시에 리턴 된 파일 디스크립터이다.

 

           $ gcc –o serialRead serialRead.c –I/usr/local/include –L/usr/local/lib –lwiringPi

           $ sudo ./serialRead

 

위와 같이 빌드 후에 실행 시켜 본다.

본인은 Tera Term과 같은 시리얼 통신 프로그램을 사용하여, 동작 실험읗 해 볼 수있다. 실행 후

Tera Term에서 임의로 문자를 입력해 보면, 사용자의 콘솔에 입력된 문자가 출력되는 것을 볼

수 있다.

직접 빌드 후에 실행해 보고, 확인 해 보도록 하자. 시리얼 통신 프로그램은 사용자가 사용하고

있는 것은 뭐든 가능하다.

 

wiringPi에서 지원하는 다른 함수는 다음과 같다. 함수 이름으로 기능을 알 수 있으니 별도의 설

명은 안 하도록 하겠다.

 

l  void serialClose(int fd); // open했던 시리얼 포트를 닫는다.

l  void serialPutchar(int fd, unsigned char c);

l  void serialPuts(int fd, char *s);

l  void serialPrintf(int fd, char *message, ….);

l  void serialFlush(int fd); // 수신된 모든 데이터를 삭제한다.

                     
비밀번호 확인 닫기
 
 
 
 
 
 
[RaspberryPi] 21. GPIO - 시리얼 통신 실험 2 samdori 2014/03/16 5854
 
상호명 : R&C사 사업자등록번호 : 106-02-43112 통신판매업신고번호 : 용산 03564
대표 : 곽민수 사업장소재지 : 서울시 용산구 갈월동 17-1번지 세기빌딩 101호
전화 : ☎ : 02-776-4868 ,F: 02-779-6757 개인정보담당자 : 곽민수
[회사소개] [이용안내] [이용약관] [개인정보취급방침]
Copyright ⓒ 도서출판 OHM사와 학습기기 R&C사 All Rights Reserved.