You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python向COM端口发送数字时程序挂起问题求助

问题原因及解决方法

挂起原因

  • serial.write()方法仅接受字节对象作为参数,直接传入整数21违反参数类型要求,引发底层操作异常,导致程序挂起。
  • 若配对的COM3端口未被打开监听,串口缓冲区可能因无接收端出现阻塞,进一步加剧挂起情况。

解决步骤

  • 修正发送参数格式:
    • 若要发送字符串形式的"21",使用ser.write(b'21')(b前缀将字符串转为字节);
    • 若要发送十进制21对应的原始字节(ASCII码为NAK控制字符),使用ser.write(bytes([21]))。
  • 打开配对端口监听:用串口调试工具或另一段代码打开COM3端口,确保接收端存在,避免缓冲区阻塞。
  • 实现每秒发送逻辑,示例代码:
import serial
import time

ser = serial.Serial('COM4', 9600, timeout=1)
try:
    while True:
        # 按需选择其中一种发送方式
        ser.write(b'21')  # 发送字符串"21"
        # ser.write(bytes([21]))  # 发送字节值21
        time.sleep(1)
finally:
    ser.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:04:51