我在这里并不是期望有一个代码,而是想了解那里的人们的知识。
我有一个python代码--它使用pyserial与微控制器单元(MCU)进行串行通信。我的单片机是128字节RAM和内部存储器。我用ser.write命令写单片机,单片机用数据进行响应--我用ser.read命令读取它。
这里的问题是--直到上周,它的工作一直很出色。从昨天起-我只能在一天的早上才能进行串行通信。过了一会儿,当我读到数据时,MCU会用“无”消息来响应。我第二天看了数据,效果很好。奇怪的是,我安装了超级终端,它与单片机通信并读取数据。所以我希望以前有没有人遇到过这个问题。
我在我的python程序中使用线程--只是为了检查使用线程多次运行程序是否会导致问题。据我所知,线程应该只影响我的PC而不是单片机的内存。
我重新启动了我的电脑和MCU,我仍然有这个问题。
注: Pycharm给出了我在问题中提到的答案。如果我在空闲的时候做同样的事情--它给了我完全不同的答案。
发布于 2016-08-30 19:55:07
因此,最终您将寻求关于如何调试这种依赖时间的问题的建议。某种程度上,状态是在计算机、python进程或影响事物的微控制器中创建的。(从理论上讲,外部环境因素也有可能影响事物。举个例子,如果你的微控制器有一个实时时钟,你实际上可以有一个依赖于时间的错误。与其他可能性相比,这似乎不太可能)。
首先,尝试重新启动python程序。如果这样做可以解决问题,那么您就知道在python或程序中创建了某种状态,从而导致了问题。使用此信息更新您的问题。
如果这不能修复它,尝试重新启动您的计算机。如果这样做可以修复一些问题,那么您就会强烈怀疑计算机中的某些状态正在影响事物。
如果所有这些都不起作用,请尝试重新启动微控制器。如果重新启动PC和微控制器都不能修复问题,请将其包括在您的问题中,因为这是非常有趣的数据。
可以创建的状态示例:
超终端可以做各种事情来清除流量控制状态或重新配置串口。
如果重新启动python不能解决问题,那么线程处理不太可能是您的问题。如果重新启动python修复了问题,线程处理可能是一个问题。
https://stackoverflow.com/questions/39235868
复制相似问题