|
Hello Thomas, Here goes a small example int main(int argc, char **argv) { int f = 0, i = 0, tmp = 0; unsigned short status = 0; unsigned char pins; struct ftdi_context *ftdi; unsigned char buff[513]; int VID = 0x0403; int PID = 0x6001; if ((ftdi = ftdi_new()) == 0) { fprintf(stderr, "ftdi_new failed\n"); return EXIT_FAILURE; } fprintf(stdout, "Opening...\n"); if(ftdi_usb_open_desc(ftdi, VID, PID, "USB Serial Converter", "MYSERIALNUMBER") < 0) { fprintf(stderr, " ftdi_usb_open failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } fprintf(stdout, "Reset...\n"); if(ftdi_usb_reset(ftdi) < 0) { fprintf(stderr, " ftdi_usb_reset failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } fprintf(stdout, "Setting Line Properties...\n"); //if(ftdi_set_line_property(ftdi, BITS_8, STOP_BIT_2, NONE) < 0) { if(ftdi_set_line_property2(ftdi, BITS_8, STOP_BIT_2, NONE, BREAK_ON) < 0) { fprintf(stderr, " ftdi_set_line_property failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } fprintf(stdout, "Setting Baudrate...\n"); if(ftdi_set_baudrate(ftdi, 250000) < 0) { fprintf(stderr, " ftdi_set_baudrate failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } fprintf(stdout, "Setting Flow Ctrl...\n"); if(ftdi_setflowctrl(ftdi, SIO_RESET) < 0) { fprintf(stderr, " ftdi_set_setflowctrl failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } fprintf(stdout, "Purging Buffers...\n"); if(ftdi_usb_purge_buffers(ftdi) < 0) { fprintf(stderr, " ftdi_usb_purge_buffers failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } // Set Line to Read fprintf(stdout, "Setting RTS...\n"); if(ftdi_setrts(ftdi, SIO_SET_RTS_HIGH) < 0) { fprintf(stderr, " ftdi_setrts failed\n"); fprintf(stderr, "%s\n", ftdi_get_error_string(ftdi)); exit -1; } while(!exitRequested) { ftdi_poll_modem_status(ftdi, &status); if(status & 0x1000) { // BREAK_INTERRUPT f = ftdi_read_data(ftdi, buff, sizeof(buff)); if(f < 0) sleep(1); else if(f > 0) { ftdi_usb_purge_rx_buffer(ftdi); fprintf(stdout, "Read %d bytes\n", f); for(i = 0; i < sizeof(buff); i++) { fprintf(stdout, "%02X ", ((unsigned char *) buff)[i] ); } fprintf(stdout, "\n"); fflush(stdout); } } // BREAK INTERRUPT } ftdi_usb_close(ftdi); ftdi_free(ftdi); return 0; } Best regards, On 05/29/2012 02:23 PM, Thomas Jarosch wrote: Hello Rui, On Thursday, 24. May 2012 18:26:04 Rui Barreiros wrote:Is it possible to do this with libftdi ?! How can I ?Can you post your ported code? Would make things easier. Also remove any code that's not directly needed for this to work.Thomas --
libftdi - see http://www.intra2net.com/en/developer/libftdi for details. | ||||||
- FT232RL Reading DMX Rui Barreiros
- Re: FT232RL Reading DMX Thomas Jarosch
- Re: FT232RL Reading DMX Rui Barreiros
- Re: FT232RL Reading DMX Thomas Jarosch
- Re: FT232RL Reading DMX Rui Barreiros

