Fixed Context::open as get_strings() closes the device before. Thanks to Chris M...
[libftdi] / examples / simple.c
CommitLineData
bf956a00
TJ
1/* simple.c
2
3 Simple libftdi usage example
4
5 This program is distributed under the GPL, version 2
6*/
7
ad397a4b
TJ
8#include <stdio.h>
9#include <ftdi.h>
10
6ac169ea 11int main(void)
ad397a4b
TJ
12{
13 int ret;
14 struct ftdi_context ftdic;
6ac169ea
TJ
15 if (ftdi_init(&ftdic) < 0)
16 {
17 fprintf(stderr, "ftdi_init failed\n");
18 return EXIT_FAILURE;
19 }
ad397a4b 20
22d12cda
TJ
21 if ((ret = ftdi_usb_open(&ftdic, 0x0403, 0x6001)) < 0)
22 {
ad397a4b
TJ
23 fprintf(stderr, "unable to open ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
24 return EXIT_FAILURE;
25 }
26
cb6250fa 27 // Read out FTDIChip-ID of R type chips
22d12cda
TJ
28 if (ftdic.type == TYPE_R)
29 {
cb6250fa
TJ
30 unsigned int chipid;
31 printf("ftdi_read_chipid: %d\n", ftdi_read_chipid(&ftdic, &chipid));
32 printf("FTDI chipid: %X\n", chipid);
33 }
34
6ac169ea
TJ
35 if ((ret = ftdi_usb_close(&ftdic)) < 0)
36 {
37 fprintf(stderr, "unable to close ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
38 return EXIT_FAILURE;
39 }
40
ad397a4b
TJ
41 ftdi_deinit(&ftdic);
42
43 return EXIT_SUCCESS;
44}