您好,我尝试使用FTDI库-> https://github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py和D2XX FTDI Programming Guide对EEPROM FTDI进行编程
def eeProgram(self, progdata=None, *args, **kwds):
if progdata is None:
progdata = _ft.ft_program_data(**kwds)
progdata.Signature1 = _ft.DWORD(0)
progdata.Signature2 = _ft.DWORD(0xffffffff)
progdata.Version = _ft.DWORD(2)
call_ft(_ft.FT_EE_Program, self.handle, progdata)
return None
我创建了实例到FTD2XX(Object)
handler = _ft.FT_HANDLE()
call_ft(_ft.FT_Open, 0, c.byref(handler))
device = FTD2XX(handler)
并调用函数eeProgram
device.eeProgram(0,0xffffffff,2,"FTDI","FT")
device.close()
之后,我得到了错误:
Traceback (most recent call last):
File "ftd2xx.py", line 678, in <module>
device.eeProgram(0,0xffffffff,2,"FTDI","FT")
File "ftd2xx.py", line 573, in eeProgram
progdata.Signature1 = _ft.DWORD(0)
AttributeError: 'int' object has no attribute 'Signature1'
我可以通过python连接设备并与之通信,但是该功能不起作用。有人知道我应该怎么做才能使用该功能对设备进行编程吗?
最佳答案
如错误消息所示:progdata is an int
。
device.eeProgram(0,0xffffffff,2,"FTDI","FT")
eeProgram的第一个参数是progdata,它显然是int而不是可能具有方法或属性
Signature
的类。注意:第一个参数是
0
,因为device
是函数定义中的self?
参数。因此,您需要将
0
更改为任何类eeProgram
作为方法的类实例。