pic单片机与电脑串口通信不正常:工作一段时间后电脑vb串口程序无法接收到数据,但单片机一直正常工作。
我用pic单片机测量多个数据,测得的数据上传到电脑,用vb编写程序显示。但发现如下问题:1.正常工作一段时间后,串口接收不到数据了,必须重新插拔串口线,单片机不需要重启。...
我用pic单片机测量多个数据,测得的数据上传到电脑,用vb编写程序显示。但发现如下问题:
1.正常工作一段时间后,串口接收不到数据了,必须重新插拔串口线,单片机不需要重启。vb程序就像“没有响应”一样。这种状况更容易出现在我使用了有源的测量方法后。比如接一个运放,或者测量一个电压。甚至把给单片机供电的电压作为待测电压输入,也会出现这个问题。
2.必须先打开单片机,再插上串口线,最后打开vb程序开始接收,否则就会提示“串口已打开”或“串口未打开”错误。
补充:我做过测试,max232芯片向电脑输出的那个引脚工作一直正常,即使是串口不能读取数据的时候,也可以在示波器上有正常的波形,所以pic单片机一直到max232应该是没问题的吧。不知道是vb的问题,还是串口传输的问题。衷心盼望赐教。 展开
1.正常工作一段时间后,串口接收不到数据了,必须重新插拔串口线,单片机不需要重启。vb程序就像“没有响应”一样。这种状况更容易出现在我使用了有源的测量方法后。比如接一个运放,或者测量一个电压。甚至把给单片机供电的电压作为待测电压输入,也会出现这个问题。
2.必须先打开单片机,再插上串口线,最后打开vb程序开始接收,否则就会提示“串口已打开”或“串口未打开”错误。
补充:我做过测试,max232芯片向电脑输出的那个引脚工作一直正常,即使是串口不能读取数据的时候,也可以在示波器上有正常的波形,所以pic单片机一直到max232应该是没问题的吧。不知道是vb的问题,还是串口传输的问题。衷心盼望赐教。 展开
2个回答
展开全部
1. 是否使用了USB转串口?如果使用了的话,换一台有串口的台式机试试看,如果好了的话,可能是转接线有问题;
2. 不打开VB应用程序,只使用串口助手接收数据,如果有通信协议的话,挑一条可以固定应答的报文循环发送接收,看发送/接收字节数的比率,正常的话会是一个定值,没问题的话,证明下位机应用层到上位机链路层是没有问题的;
3. 现在只剩下VB软件了,VB我不会,但是我用VC写过类似的东西,我认为可能是你的软件接收不及时导致了串口接收缓冲区满或者报文接收出现偏差,最好设计一个完备的通信协议,每次通信都要有可靠的缓冲处理、校验处理、应答处理和错误重试处理,一次应答结束后及时清除接收缓冲,这样能保证可靠、持续的通信。
我只提供解决问题的思路,不替代你解决问题,希望能有所帮助,呵呵。
2. 不打开VB应用程序,只使用串口助手接收数据,如果有通信协议的话,挑一条可以固定应答的报文循环发送接收,看发送/接收字节数的比率,正常的话会是一个定值,没问题的话,证明下位机应用层到上位机链路层是没有问题的;
3. 现在只剩下VB软件了,VB我不会,但是我用VC写过类似的东西,我认为可能是你的软件接收不及时导致了串口接收缓冲区满或者报文接收出现偏差,最好设计一个完备的通信协议,每次通信都要有可靠的缓冲处理、校验处理、应答处理和错误重试处理,一次应答结束后及时清除接收缓冲,这样能保证可靠、持续的通信。
我只提供解决问题的思路,不替代你解决问题,希望能有所帮助,呵呵。
展开全部
提供几种问题排查思路
1、关于VB一端,使用的控件中是否存在缓冲区不够的情况,比如通讯控件的接收缓冲区是否够大,还有是否使用的是textbox显示控件,好像这种控件在显示字符达到一定数量时可能会出问题,需要定时或定量清除。由于我对VB不熟,只能提供个思路。
2、不知是否用的是USB转串口线方式,这种方式好像问题很多,在自带串口的机器上没事,使用转换线就有问题。
3、是否单片机系统的电源有问题?比如能否提供足够的输出电流?否则仅仅是增加运放或测量电压应该不至于改变单片机及MAX232的工作状态。
4、模拟电路与数字电路接地设计及信号走线设计。这就需要靠你自己了。
1、关于VB一端,使用的控件中是否存在缓冲区不够的情况,比如通讯控件的接收缓冲区是否够大,还有是否使用的是textbox显示控件,好像这种控件在显示字符达到一定数量时可能会出问题,需要定时或定量清除。由于我对VB不熟,只能提供个思路。
2、不知是否用的是USB转串口线方式,这种方式好像问题很多,在自带串口的机器上没事,使用转换线就有问题。
3、是否单片机系统的电源有问题?比如能否提供足够的输出电流?否则仅仅是增加运放或测量电压应该不至于改变单片机及MAX232的工作状态。
4、模拟电路与数字电路接地设计及信号走线设计。这就需要靠你自己了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询