“int”对象没有python属性

2024-10-03 19:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我试着用FTDI库编程EEPROM FTDI->;https://github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.pyD2XX FTDI Programming Guide

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

我创建了ftd2x(对象)的实例

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与设备连接和通信,但是这个函数不起作用。有人知道我该怎么做才能用这个功能给设备编程吗?你知道吗


Tags: pyselfnonedevice编程callhandlerftdi
1条回答
网友
1楼 · 发布于 2024-10-03 19:24:12

如错误消息所示:progdata is an int。你知道吗

device.eeProgram(0,0xffffffff,2,"FTDI","FT")

eeProgram的第一个参数是progdata,它显然是一个int,而不是一个可能有方法或属性Signature的类。你知道吗

注意:第一个参数是0,因为device是函数定义中的self?参数。 因此,您需要将0更改为任何类的类实例eeProgram是的方法。你知道吗

相关问题 更多 >