【问题标题】:Cannot set GPIO pins in FT230X in CentosCentos FT230X 无法设置 GPIO 引脚
【发布时间】:2015-06-10 19:29:39
【问题描述】:

我将 LED 连接到 FT230X 的 CBx 引脚。我正在使用 libftdi v1.2 来设置 FT230X CBx 引脚。我尝试了两种 bitbang 模式:BITMODE_BITBANG 和 BITMODE_CBUS,但没有任何结果。 我的代码在某处:

#include <ftdi.h>
#include <err.h>
int main(int argc, char *argv[])
{
  struct ftdi_context ftdi;
  unsigned char x;

  /* Initialize and find device */
  if (ftdi_init(&ftdi) < 0)
    err(1, "ftdi_init");

  if (ftdi_usb_open(&ftdi, 0x0403, 0x6015) < 0)
    err(2, "can't open device");

  /* Enable bitbang */
  if (ftdi_set_bitmode(&ftdi, 0xff, BITMODE_BITBANG) < 0)
    err(3, "can't enable bitbang mode");

  /* Write Yellow */
  x=0x00;
  if (ftdi_write_data(&ftdi, &x, 1) < 0)
    err(5, "can't write");
  sleep(3);
  /* Write Red */
  x=0x01;
  if (ftdi_write_data(&ftdi, &x, 1) < 0)
    err(5, "can't write");
  sleep(3);
  /* Write Green */
  x=0x02;
  if (ftdi_write_data(&ftdi, &x, 1) < 0)
    err(5, "can't write");
  sleep(3);

  /* Close device */
  ftdi_usb_close(&ftdi);
  ftdi_deinit(&ftdi);

  return 0;
}

需要注意的是,相同的代码(不包括产品 id = 0x6013)适用于 FT4232H。

【问题讨论】:

    标签: c centos gpio ftdi


    【解决方案1】:

    我解决了我的问题。正如我所提到的,我需要在 FT230X 上设置 CBx 引脚。对于这种情况,FT230X 应该在 EEPROM 中启用 BITMODE_CBUS 模式。 在 BITMODE_CBUS 模式下,如 libftdi 的 bitbang_cbus.c 示例中所述,设置这些 CBx 引脚只能使用 ftdi_set_bitmode() 函数。 其中在第二个参数(位掩码)中,上半字节控制输入/输出,下半字节控制设置为输出的行的状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      相关资源
      最近更新 更多