blob: 0d6da5f08c752cf09e0e23792affdfc2eafa52eb [file] [log] [blame]
Gordon Henderson3fbc5642013-03-24 20:04:07 +00001/*
2 * serialTest.c:
3 * Very simple program to test the serial port. Expects
4 * the port to be looped back to itself
5 *
6 * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
7 ***********************************************************************
8 * This file is part of wiringPi:
9 * https://projects.drogon.net/raspberry-pi/wiringpi/
10 *
11 * wiringPi is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * wiringPi is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
23 ***********************************************************************
24 */
25
26#include <stdio.h>
27#include <string.h>
28#include <errno.h>
29
30#include <wiringPi.h>
31#include <wiringSerial.h>
32
33int main ()
34{
35 int fd ;
36 int count ;
37 unsigned int nextTime ;
38
39 if ((fd = serialOpen ("/dev/ttyAMA0", 115200)) < 0)
40 {
41 fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
42 return 1 ;
43 }
44
45 if (wiringPiSetup () == -1)
46 {
47 fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
48 return 1 ;
49 }
50
51 nextTime = millis () + 300 ;
52
53 for (count = 0 ; count < 256 ; )
54 {
55 if (millis () > nextTime)
56 {
57 printf ("\nOut: %3d: ", count) ;
58 fflush (stdout) ;
59 serialPutchar (fd, count) ;
60 nextTime += 300 ;
61 ++count ;
62 }
63
64 delay (3) ;
65
66 while (serialDataAvail (fd))
67 {
68 printf (" -> %3d", serialGetchar (fd)) ;
69 fflush (stdout) ;
70 }
71 }
72
73 printf ("\n") ;
74 return 0 ;
75}