reg_sci = bytearray([85, 90, 20, 230, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 152]) print(reg_sci) DIFF_R = self.textEdit_dir_r.toPlainText() DIFF_R = int(DIFF_R) reg_sci[6] = reg_sci[6] + floor(DIFF_R//256) reg_sci[7] = DIFF_R % 256 reg_sci[22] = sum(reg_sci[0:21]) reg_sci[22] = reg_sci[22] % 256 parent_serial = main.get_serial() parent_serial.write(reg_sci)报错:bytearray(b'UZ\x14\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98') byte must be in range(0, 256)
时间: 2024-03-29 11:38:40 浏览: 43
ACT_GE_BYTEARRAY.sql
根据你提供的代码,错误发生在 `parent_serial.write(reg_sci)` 这一行。这个错误提示信息和之前一样,说明 `reg_sci` 数组中的某个元素超出了 0 到 255 的范围。
根据你提供的 `reg_sci` 数组,发现第 3 个元素的值是 20,但是后面的值都是 0,这可能不是你想要的结果。另外,在对 `reg_sci[6]` 进行赋值时,使用了加法,但是这个元素的值可能超出了 0 到 255 的范围,需要使用取模操作确保它的值在正确的范围内。
建议检查一下代码逻辑,确保 `reg_sci` 数组中的所有元素都在 0 到 255 的范围内,特别是在对其进行加法或减法操作时。如果你需要更多的帮助,请提供更多的上下文信息。
阅读全文