首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >串行嵌入式系统

串行嵌入式系统
EN

Stack Overflow用户
提问于 2016-08-30 19:42:17
回答 1查看 275关注 0票数 2

我在这里并不是期望有一个代码,而是想了解那里的人们的知识。

我有一个python代码--它使用pyserial与微控制器单元(MCU)进行串行通信。我的单片机是128字节RAM和内部存储器。我用ser.write命令写单片机,单片机用数据进行响应--我用ser.read命令读取它。

这里的问题是--直到上周,它的工作一直很出色。从昨天起-我只能在一天的早上才能进行串行通信。过了一会儿,当我读到数据时,MCU会用“无”消息来响应。我第二天看了数据,效果很好。奇怪的是,我安装了超级终端,它与单片机通信并读取数据。所以我希望以前有没有人遇到过这个问题。

我在我的python程序中使用线程--只是为了检查使用线程多次运行程序是否会导致问题。据我所知,线程应该只影响我的PC而不是单片机的内存。

我重新启动了我的电脑和MCU,我仍然有这个问题。

注: Pycharm给出了我在问题中提到的答案。如果我在空闲的时候做同样的事情--它给了我完全不同的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-30 19:55:07

因此,最终您将寻求关于如何调试这种依赖时间的问题的建议。某种程度上,状态是在计算机、python进程或影响事物的微控制器中创建的。(从理论上讲,外部环境因素也有可能影响事物。举个例子,如果你的微控制器有一个实时时钟,你实际上可以有一个依赖于时间的错误。与其他可能性相比,这似乎不太可能)。

首先,尝试重新启动python程序。如果这样做可以解决问题,那么您就知道在python或程序中创建了某种状态,从而导致了问题。使用此信息更新您的问题。

如果这不能修复它,尝试重新启动您的计算机。如果这样做可以修复一些问题,那么您就会强烈怀疑计算机中的某些状态正在影响事物。

如果所有这些都不起作用,请尝试重新启动微控制器。如果重新启动PC和微控制器都不能修复问题,请将其包括在您的问题中,因为这是非常有趣的数据。

可以创建的状态示例:

  • 流量控制微控制器可以发送xoff,清除清空发送或以其他方式指示它不需要数据。
  • 另一个方向的流控制:您的PC可能正在发送xoff、清除发送请求或以其他方式指示它不需要数据。
  • 您的程序会陷入混乱状态--要么是因为代码中的错误,要么是因为pyserial。
  • 串口配置--串口设置可能会变得混乱。

超终端可以做各种事情来清除流量控制状态或重新配置串口。

如果重新启动python不能解决问题,那么线程处理不太可能是您的问题。如果重新启动python修复了问题,线程处理可能是一个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39235868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档