Python:
data = [0,0,0,0]
data[3]= self.i2cbus.read_byte_data(self.i2cadd, add)
data[2]= self.i2cbus.read_byte_data(self.i2cadd, add+1)
data[1]= self.i2cbus.read_byte_data(self.i2cadd, add+2)
data[0]= self.i2cbus.read_byte_data(self.i2cadd, add+3)
value = struct.unpack("i", bytearray(data))
return value[0]
如何快速做到这一点?到目前为止我已经做到了。
var data: [UInt8] = [0,0,0,0]
data[3] = i2c.readByte(address, command: command) ?? 0
data[2] = i2c.readByte(address, command: command + 1) ?? 0
data[1] = i2c.readByte(address, command: command + 2) ?? 0
data[0] = i2c.readByte(address, command: command + 3) ?? 0
使用: https://github.com/uraimo/SwiftyGPIO
就是这个
value = struct.unpack("i", bytearray(data))
我不知道该怎么办。
最佳答案
试试这个:
var value : UInt32 = 0
let nsdata = NSData(bytes: data, length: 4)
nsdata.getBytes(&value, length: 4)
value = UInt32(bigEndian: value)
关于Python struct.unpack ("i", bytearray(data)) 到 Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53890452/