Pyserial - 嵌入式系统
Pyserial - Embedded Systems
我不希望这里有代码,而是希望了解那里的人们的知识。
我有一个 python 代码 - 它使用 pyserial 与微控制器单元 (MCU) 进行串行通信。我的 MCU 是 128byte RAM 并且有内存。我使用 ser.write 命令写入 MCU,MCU 响应数据 - 我使用 ser.read 命令读取它。
这里的问题是 - 直到上周它都运行良好。从昨天开始 - 我只能在当天早上进行串行通信。过了一会儿,当我读取数据时,MCU 以 "NONE" 消息响应。第二天我看了数据,它工作正常。奇怪的是——我安装了 Hyperterminal,它可以与 MCU 正确通信并读取数据。所以我希望以前是否有人遇到过这个问题。
我在我的 python 程序中使用线程 - 只是为了检查 运行 程序多次使用线程是否导致了问题。据我所知,线程应该只影响我的 PC 的内存而不是 MCU。
我重新启动了我的电脑和MCU,我仍然有这个问题。
注意:Pycharm 给出了我在问题中提到的答案。如果我在 IDLE 中做同样的事情 - 它会给我完全不同的答案
因此,最终您正在寻找有关如何调试此类时间相关问题的建议。
不知何故,状态会在您的计算机、您的 python 进程或影响事物的微控制器中的某处创建。 (从理论上讲,外部环境因素也可能会影响事物。例如,如果您的微控制器具有实时时钟,您实际上可能会遇到与时间相关的错误。这似乎比其他可能性更小)。
首先,尝试重新启动您的 python 程序。如果这解决了问题,那么您就知道在 python 或导致问题的程序中创建了某些状态。
使用此信息更新您的问题。
如果仍不能解决问题,请尝试重新启动计算机。如果这解决了问题,那么您强烈怀疑计算机中的某些状态正在影响问题。
如果 none 有效,请尝试重新启动微控制器。如果重新启动 PC 和微控制器都不能解决问题,请将其包含在您的问题中,因为它是非常有趣的数据。
可以创建的状态示例:
流量控制。微控制器可能正在发送 xoff、清除清除发送或以其他方式指示它不需要数据
另一个方向的流量控制:您的 PC 可能正在发送 xoff、清除请求发送或以其他方式表明它不需要数据
你的程序让 pyserial 进入了一个混乱的状态——要么是因为你的代码中的错误,要么是 pyserial。
串行端口配置--串行端口设置可能会变得混乱。
超级终端可以做各种事情来清除流量控制状态或重新配置串口。
如果重新启动 python 不能解决问题,线程不太可能是您的问题。如果重新启动 python 修复了线程问题,则可能是一个问题。
我不希望这里有代码,而是希望了解那里的人们的知识。
我有一个 python 代码 - 它使用 pyserial 与微控制器单元 (MCU) 进行串行通信。我的 MCU 是 128byte RAM 并且有内存。我使用 ser.write 命令写入 MCU,MCU 响应数据 - 我使用 ser.read 命令读取它。
这里的问题是 - 直到上周它都运行良好。从昨天开始 - 我只能在当天早上进行串行通信。过了一会儿,当我读取数据时,MCU 以 "NONE" 消息响应。第二天我看了数据,它工作正常。奇怪的是——我安装了 Hyperterminal,它可以与 MCU 正确通信并读取数据。所以我希望以前是否有人遇到过这个问题。
我在我的 python 程序中使用线程 - 只是为了检查 运行 程序多次使用线程是否导致了问题。据我所知,线程应该只影响我的 PC 的内存而不是 MCU。
我重新启动了我的电脑和MCU,我仍然有这个问题。
注意:Pycharm 给出了我在问题中提到的答案。如果我在 IDLE 中做同样的事情 - 它会给我完全不同的答案
因此,最终您正在寻找有关如何调试此类时间相关问题的建议。 不知何故,状态会在您的计算机、您的 python 进程或影响事物的微控制器中的某处创建。 (从理论上讲,外部环境因素也可能会影响事物。例如,如果您的微控制器具有实时时钟,您实际上可能会遇到与时间相关的错误。这似乎比其他可能性更小)。
首先,尝试重新启动您的 python 程序。如果这解决了问题,那么您就知道在 python 或导致问题的程序中创建了某些状态。 使用此信息更新您的问题。
如果仍不能解决问题,请尝试重新启动计算机。如果这解决了问题,那么您强烈怀疑计算机中的某些状态正在影响问题。
如果 none 有效,请尝试重新启动微控制器。如果重新启动 PC 和微控制器都不能解决问题,请将其包含在您的问题中,因为它是非常有趣的数据。
可以创建的状态示例:
流量控制。微控制器可能正在发送 xoff、清除清除发送或以其他方式指示它不需要数据
另一个方向的流量控制:您的 PC 可能正在发送 xoff、清除请求发送或以其他方式表明它不需要数据
你的程序让 pyserial 进入了一个混乱的状态——要么是因为你的代码中的错误,要么是 pyserial。
串行端口配置--串行端口设置可能会变得混乱。
超级终端可以做各种事情来清除流量控制状态或重新配置串口。
如果重新启动 python 不能解决问题,线程不太可能是您的问题。如果重新启动 python 修复了线程问题,则可能是一个问题。