主题中讨论的其他器件:USB2ANY
尊敬的团队:
我尝试使用自己的源代码(例如 C、C++、Python)来设置寄存器值、而不是使用 TICS Pro GUI。
检查 此页面后、有一种方法可以使用 python 写入寄存器值。
在这里、我附加了上面链接中的 python 代码摘录、并且有几个问题。
# Write and Read
numerator = 0xDEADBEEF
packet1 = 0x260000 + ((numerator >> 16) & 0xFFFF)
packet2 = 0x270000 + (numerator & 0xFFFF)
buf = ctypes.c_buffer(3) #register length is three bytes for LMX2594
buf[0] = (packet1 >> 16) & 0xFF
buf[1] = (packet1 >> 8) & 0xFF
buf[2] = packet1 & 0xFF
errCode = u2adll.u2aSPI_WriteAndRead(handle, 3, buf)
if errCode < 0: raise Exception('failed to write first packet')
buf[0] = (packet2 >> 16) & 0xFF
buf[1] = (packet2 >> 8) & 0xFF
buf[2] = packet2 & 0xFF
errCode = u2adll.u2aSPI_WriteAndRead(handle, 3, buf)
if errCode < 0: raise Exception('failed to write second packet')
buf[0] = 0xEF
buf[1] = 0x00
buf[2] = 0x00
errCode = u2adll.u2aSPI_WriteAndRead(handle, 3, buf)
if errCode < 0: raise Exception('failed to read R111')
rb_VCO_CAPCTRL = ord(buf[2]) # R111[7:0]。
1.使用数据包1和数据包2的目的
在设置寄存器 R111[7:0]之前、我想知道为什么要使用数据包1和数据包2。
我认为、像 buf = ctypes.c_buffers (3)一样、定义缓冲区大小就足够了。
在写入多个寄存器值之前、是否必须设置数据包1和数据包2?
如果是、是否有任何标准来设置数据包值?
2.基于寄存器名称的编程方法
在示例代码中、似乎根据寄存器字段名称写入寄存器值。
是否有其他方法根据寄存器名称 e.g、R0=0x00251C 写入寄存器值、类似于 TICS Pro GUI?
3.示例代码中的 buf 数组
I Expected buff array (大小为3)意味着3个字节的值、buf[0]是寄存器的地址、buf[1]和 buf[2]是特定值。
但是 、在写入 R111值时、在上述代码中将 buf[0]配置为'EF'、
'ef'不是 R111的地址值、因此我想知道每个 buf 数组值的含义。
4.验证方法
在 python 代码中写入寄存器值后、是否有方法验证 TICS Pro GUI 中的寄存器值?
此致、
Sung