X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=examples%2Fserial_test.c;h=289dd97bd7bd02b3eb937e73e16eccd134cad991;hp=7c89e784933ced4f7e7196a85cf2f4f0f16e197a;hb=19f1452cde9bfe9da0e2830af128fae958ae877a;hpb=2e9cc5be4eb2115cdb8a497d6b9def031b1a681e diff --git a/examples/serial_test.c b/examples/serial_test.c index 7c89e78..289dd97 100644 --- a/examples/serial_test.c +++ b/examples/serial_test.c @@ -28,7 +28,7 @@ int main(int argc, char **argv) { struct ftdi_context *ftdi; unsigned char buf[1024]; - int f, i; + int f = 0, i; int vid = 0x403; int pid = 0; int baudrate = 115200; @@ -130,6 +130,21 @@ int main(int argc, char **argv) exit(-1); } + /* Set line parameters + * + * TODO: Make these parameters settable from the command line + * + * Parameters are choosen that sending a continous stream of 0x55 + * should give a square wave + * + */ + f = ftdi_set_line_property(ftdi, 8, STOP_BIT_1, NONE); + if (f < 0) + { + fprintf(stderr, "unable to set line parameters: %d (%s)\n", f, ftdi_get_error_string(ftdi)); + exit(-1); + } + if (do_write) for(i=0; i<1024; i++) buf[i] = pattern; @@ -138,11 +153,13 @@ int main(int argc, char **argv) while (!exitRequested) { if (do_write) - f = ftdi_write_data(ftdi, buf, sizeof(buf)); + f = ftdi_write_data(ftdi, buf, + (baudrate/512 >sizeof(buf))?sizeof(buf): + (baudrate/512)?baudrate/512:1); else f = ftdi_read_data(ftdi, buf, sizeof(buf)); if (f<0) - sleep(1); + usleep(1 * 1000000); else if(f> 0 && !do_write) { fprintf(stderr, "read %d bytes\n", f);