You need to enable JavaScript to run this app. Micropython逐字节循环通过UART发送数据触发buffer协议报错如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Micropython逐字节循环通过UART发送数据触发buffer协议报错如何解决?

MicroPython UART逐字节发送报错解决

报错原因

遍历bytes类型对象时,每次迭代取出的元素是整数类型,而非单字节的bytes对象。而MicroPython的UART.write()接口要求传入实现了缓冲区协议的对象(比如bytes、bytearray),直接传入整数不符合参数要求,因此触发类型错误。

解决方案

可根据实际使用场景二选一:

  • 无严格逐字节发送要求的场景,直接传入完整bytes对象即可,运行效率更高:
c = b'\x00\x00\x0c\x00'
uart_gps.write(c)
  • 必须逐字节发送的场景,每次将取出的整数转为单字节bytes对象再发送即可:
c = b'\x00\x00\x0c\x00'
for b in c:
    uart_gps.write(bytes([b]))

内容的提问来源于stack exchange,提问作者andtompoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 10:36:04