diff --git a/.gitignore b/.gitignore index b678af8..47d4df6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ a.out *.o fake-values -essai +essai serail/t doc/*.toc doc/*.log doc/*.aux doc/*.pdf diff --git a/serial/Makefile b/serial/Makefile new file mode 100644 index 0000000..3af2ad8 --- /dev/null +++ b/serial/Makefile @@ -0,0 +1,9 @@ + + + +serial.o: serial.c serial.h Makefile + gcc -Wall -c $< + +t: t.c serial.o Makefile + gcc -Wall $< serial.o -o $@ + diff --git a/serial/serial.c b/serial/serial.c index d38f6c8..87dd3d9 100644 --- a/serial/serial.c +++ b/serial/serial.c @@ -96,3 +96,21 @@ tcsetattr(uart0, TCSANOW, &options); return uart0; } + +/* -------------------------------------------------------------------- */ + +int getbyte(int fd) +{ +unsigned char byte; +int foo; + +foo = read(fd, &byte, 1); +if (1 != foo) + { + perror("read a byte"); + return -1; + } +return (int)byte; +} + +/* -------------------------------------------------------------------- */ diff --git a/serial/serial.h b/serial/serial.h index bfec248..3bafcb5 100644 --- a/serial/serial.h +++ b/serial/serial.h @@ -4,3 +4,5 @@ int prepare_UART(char *port, int bauds); +int getbyte(int fd); + diff --git a/serial/t.c b/serial/t.c new file mode 100644 index 0000000..b912596 --- /dev/null +++ b/serial/t.c @@ -0,0 +1,21 @@ + + +#include + +#include "serial.h" + +int main (int argc, char *argv[]) +{ +int serial_in; +int byte, foo; + +serial_in = prepare_UART("/dev/ttyS0", 9600); +fprintf(stderr, "prepare uart -> %d\n", serial_in); + +for (foo=0; foo<20; foo++) { + byte = getbyte(serial_in); + printf("%6d %02x\n", foo, byte); + } + +return 0; +}