반응형
라즈베리파이 UART loopback 테스트 - C언어 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <stdio.h> #include <string.h> #include <errno.h> #include <wiringPi.h> #include <wiringSerial.h> int main() { int ser , x; char *pstr = "Hello World!"; char *ptmp; if ((ser = serialOpen ("/dev/ttyAMA0", 9600)) < 0) { fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ; return 1 ; } if (wiringPiSetup () == -1) { fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ; return 1 ; } for(x = 0; x < 10; x++){ ptmp = pstr; while(*ptmp){ serialPutchar (ser, *ptmp) ; ptmp++; } delay(50); printf ("Receive:"); while (serialDataAvail (ser)) { printf ("%c", (char)serialGetchar (ser)) ; fflush (stdout) ; } printf ("\n"); } return 0; } |
라즈베리파이 UART loopback 테스트 - Python 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/usr/bin/env python import serial, time import RPi.GPIO as GPIO #루프백 테스트에 사용할 UART용 가상 파일 ttyAMA0(ttyS0)를 연다. if(GPIO.RPI_REVISION < 3): ser = serial.Serial(port = "/dev/ttyAMA0", baudrate=9600, timeout=2) else: ser = serial.Serial(port = "/dev/ttyS0", baudrate=9600, timeout=2) if (ser.isOpen() == False): ser.open() #만약 ttyAMA0에 데이터가 남아있으면 비우고 새로 시작한다. ser.flushInput() ser.flushOutput() packet = "Hello World!" try: while(True): ser.flushInput() ser.flushOutput() print "Send:", packet #패킷을 보낸다. ser.write(packet) time.sleep(0.05) #루프백을 통해 다시 들어온 패킷을 읽는다. data = ser.read(ser.inWaiting()) print "Receive:", data except (KeyboardInterrupt, SystemExit): print("Exit...") finally: ser.close() print "Good by!" |
이미지 출처: Raspberry Pi UART Communication using Python and C https://www.electronicwings.com/raspberry-pi/raspberry-pi-uart-communication-using-python-and-c
반응형
'라즈베리파이' 카테고리의 다른 글
모든 센서종류, 센서타입 리스트 (0) | 2019.03.26 |
---|---|
라즈베리파이 2대를 사용한 UART 채팅 프로그램 C, Python 사용 (0) | 2019.03.22 |
라즈베리파이 GPIO 인터럽트 사용 Python 예제 (0) | 2019.03.22 |
라즈베리파이 GPIO 인터럽트 사용 C 예제 (0) | 2019.03.22 |
Python 프로그램, Python 스크립트 첫 라인 의미 (0) | 2019.03.22 |