vb编写的上位机程序与单片机通信会死机,用串口调试助手发数据给上位机就没事

timiny 2011-12-29 03:53:26
用单片机给上位机(用VB 编写的)发送数据会死机
但是用串口调试助手给上位机发数据就正常?
大虾们,是嘛原因啊?给指点指点迷津吧!小女子感激不尽啊
不好意思啊,我真的没分啊,没办法给你们分啊 惭愧
...全文
385 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2011-12-30
  • 打赏
  • 举报
回复
建议你在下位机设置一个缓冲区,将采集来的数据存入其中,再做一个处理(比如模拟量去掉最大值,最小值,然后求个平均值,这是数据处理常用的方式,以便让采集来的数据更平稳),将处理后的数据放置到缓冲区中,等待上位机来读取,如果缓冲区满了,上位机还未读取,那么就丢掉最开始的那个数据。依此类推
贝隆 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 timiny 的回复:]
引用 7 楼 veron_04 的回复:
如果是一直不断,那就很有可能导致计算机 假死 因为下位机不断有数据上涌,上位机就不断的处理接收,从而导致CPU利用率使用率偏高。

建议你把你的下位机程序修改一下,不要做成单向发送,修改成:上位机发送一条读命令,下位机就返回一条响应数据给上位机。

因为下位机发送的是实时的数据,需要实时监控,当我发送一条“开始实时监控的命令”之后,单片机把采集到……
[/Quote]
这并不明智。事实性取决于你的下位机采集数据的速度,而非上传速度。且你这样做是牺牲了上位机的数据处理性能,让上位机不能及时有效的处理数据,岂不降低了实时性??
timiny 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 veron_04 的回复:]
如果是一直不断,那就很有可能导致计算机 假死 因为下位机不断有数据上涌,上位机就不断的处理接收,从而导致CPU利用率使用率偏高。

建议你把你的下位机程序修改一下,不要做成单向发送,修改成:上位机发送一条读命令,下位机就返回一条响应数据给上位机。
[/Quote]
因为下位机发送的是实时的数据,需要实时监控,当我发送一条“开始实时监控的命令”之后,单片机把采集到的数据持续不断上传,为保证能实时监控,所以需要持续不断处理它们
贝隆 2011-12-30
  • 打赏
  • 举报
回复
如果是一直不断,那就很有可能导致计算机 假死 因为下位机不断有数据上涌,上位机就不断的处理接收,从而导致CPU利用率使用率偏高。

建议你把你的下位机程序修改一下,不要做成单向发送,修改成:上位机发送一条读命令,下位机就返回一条响应数据给上位机。
贝隆 2011-12-30
  • 打赏
  • 举报
回复
我都说了原因了:大量数据上涌导致CPU使用率100%,所以造成死机。修改下位机和上位机通信协议是最佳方法。
timiny 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 veron_04 的回复:]
建议你在下位机设置一个缓冲区,将采集来的数据存入其中,再做一个处理(比如模拟量去掉最大值,最小值,然后求个平均值,这是数据处理常用的方式,以便让采集来的数据更平稳),将处理后的数据放置到缓冲区中,等待上位机来读取,如果缓冲区满了,上位机还未读取,那么就丢掉最开始的那个数据。依此类推
[/Quote]
下位机不是我写的。用调试助手给上位机发数据不会死机呢,为什么拿单片机串口发送过来就会死机?尤其将处理接收数据的定时器时间调至1s定时,维持个两分钟左右还是死了,调成200ms定时之后几秒钟后就死了
timiny 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guoguo1982 的回复:]
上位机的初始化有问题,好好检查一下程序!
[/Quote]
初始化过程?好吧,全部检查一下,明天挨个块的测,但愿能找出问题出在哪里眼睛疼!
timiny 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinaboyzyq 的回复:]
查检单片机的串口是否有问题。
[/Quote]
串口应该没问题吧,这个程序在修改成环形缓冲区之前,我也是一直用这个传数据的
timiny 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 veron_04 的回复:]
你的下位机是不是不断的给上位机发送数据?
[/Quote]
对啊 一直不断的发送 我在中断里面接收数据(放在一个全局的数组里面),在定时器里面处理接收的数据,用的Do Until loop循环
贝隆 2011-12-29
  • 打赏
  • 举报
回复
你的下位机是不是不断的给上位机发送数据?
guoguo1982 2011-12-29
  • 打赏
  • 举报
回复
上位机的初始化有问题,好好检查一下程序!
chinaboyzyq 2011-12-29
  • 打赏
  • 举报
回复
查检单片机的串口是否有问题。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧