社区
VB基础类
帖子详情
vb编写的上位机程序与单片机通信会死机,用串口调试助手发数据给上位机就没事
timiny
2011-12-29 03:53:26
用单片机给上位机(用VB 编写的)发送数据会死机
但是用串口调试助手给上位机发数据就正常?
大虾们,是嘛原因啊?给指点指点迷津吧!小女子感激不尽啊
不好意思啊,我真的没分啊,没办法给你们分啊 惭愧
...全文
385
12
打赏
收藏
vb编写的上位机程序与单片机通信会死机,用串口调试助手发数据给上位机就没事
用单片机给上位机(用VB 编写的)发送数据会死机 但是用串口调试助手给上位机发数据就正常? 大虾们,是嘛原因啊?给指点指点迷津吧!小女子感激不尽啊 不好意思啊,我真的没分啊,没办法给你们分啊 惭愧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
查检单片机的串口是否有问题。
灯光控制沙盘模型控制器串口控制40路继电器输出JMDM-COM40MR.rar
6、可提供串口
通信
协议以及
VB
通信
源
程序
,赠送
VB
通过RS232串口操作控制器的演示
程序
或代为开
发
专用
程序
。7、控制器有四个拨动开关,可以设定从(0-16)号控制器的地址,也可用软件编程设定控制器地址和拨动开关的用途...
可编程可监控免驱动的2轴步进电机运动控制器JMDM-COMTSM.zip
并可同时控制8路数字量输入3路数字量输出,同时可提供
上位机
串口控制的
VB
范例
程序
和
通信
协议,方便使用者在此基础上进行二次开
发
。二、技术参数及特性1.工作电源:交直流通用,12V~30V均可,一般标配12V或24V;有过...
VB
程序
设计入门基础
VB
入门基础。清楚易懂,适合初学者本课程主要从开
发
环境、窗体、命令按钮、文本框、标签、消息框和输入框、代码基础、选择结构、循环结构、数组、过程、控件等方面进行讲解
程序
卡死,
上位机
接受不到
数据
(Modbus通讯)
使用Modbus通讯传输
数据
,
上位机
每隔300ms
发
送一次指令,在调试过程中,过一
会
就
会
卡死,
上位机
不再能接收到
数据
。
CH372或CH375的USB通讯问题解答
1、如果是在没有
单片机
的情况下,进行简单的I/O输入输出,那么可以参考CH341的资料,CH341不需要
单片机
就能独立工作,可以提供串口、并口、兼容IIC或I2C的2线接口、兼容SPI及JTAG的4线接口、5线接口等,可以提供多个...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章