【问题标题】:python serial library issue with ser.write() commandser.write() 命令的 python 串行库问题
【发布时间】:2023-02-20 23:43:27
【问题描述】:

我正在寻找一种解决方案来组合一串整数(比方说,'0000''1000'例如)。但是我需要将通过 ser.write() 发送的任何内容编码为字节,并带有我要发送的字符串旁边的 b 属性,这将给出如下内容: ser.write(b'0000')如果我要发送0000

现在,我想添加一个 for 循环,每次发送的整数都会改变,但我不知道如何使用 ser.write() 命令和开头的 b 添加字符串变量。

我想要实现的是

ser.write(myString encoded in bytes)

感谢您的帮助 !

我查看了其他类似的帖子,并尝试了以下操作:

  1. ser.write(f"b'myString'")没用...
  2. .format() 方法(均无效)
  3. 和 %-格式化方法(也会报错)

    以下是我在尝试这 3 种方法之一时遇到的错误:

    TypeError: unicode strings are not supported, please encode to bytes: '1111101000'```
    

【问题讨论】:

    标签: python python-3.x pyserial


    【解决方案1】:

    假设线路另一端的设备想要将文本编码为 UTF-8 字节,.encode() 它(如错误所述):

    ser.write(f"hëllo world".encode("utf-8"))
    

    IOW,对于一个循环,你可能会这样做

    for x in range(100):
        ser.write(f"{x:04d}".encode("utf-8"))
    

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 2019-12-11
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      相关资源
      最近更新 更多