如何从几个FT232读取ChipID?

时间:2018-02-27 19:15:42

标签: delphi ftdi

我遇到FT232问题。我正在用Delphi写作。我需要从几个FT232读取ChipID。我从中下载了文件FTChipID.pas http://www.ftdichip.com/Support/SoftwareExamples/FTDIChip-ID.htm

这是我的代码片段:

procedure TForm1.CheckComID;
var
  myChipID: array[0..10] of Longword;
  length: DWord;
begin
  Memo1.Clear;
  chipID.GetNumDevices(@length);

 for i := 0 to length-1 do begin
     chipID.GetDeviceChipID( i, @myChipID[i]);
     Memo1.Lines.Add('Device'+IntToStr(i) + ' ' + IntTohex(mychipID[i]));
  end;
end;

效果是在Memo1中,所有读取值都相同:/。

例如:

我连接了三个FT232,Memo1中的结果是:

Device0 418CF92B
Device1 418CF92B
Device2 418CF92B

任何人都可以帮助我吗?我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

GetDeviceChipID标识使用的芯片而不是USB设备。我记得对于FT232R,我将得到一个值,而对于FT231X(这是相似的芯片),我将得到一个不同的数字。

如果要读取用于标识USB设备的ID,则该属性名为“序列号”。

如果您知道序列号,则C#API为OpenBySerialNumber(字符串序列号)。 另外,您可以尝试使用OpenByIndex(0),OpenByIndex(1),OpenByIndex(2)来发现连接到PC的所有FT232。