PC与单片机通讯,单片机测试数据上报到PC,由PC端负责数据的处理和显示。控件用了COMPORT和TPAsy4 中的TAPDCOMPORT控件,都会出现以下问题:
1。程序运行的过程中(串口发送和接受数据),我随便点击任务条上其他的程序或者本程序,随意点击一段时间后(就是狂点任务条上程序),回到本程序后会发现串口没有工作了,没有发送和接受数据了,请问是什么问题?
2。程序运行中,自动连续测试,发现有时连续测试了一百多个、几十个之后串口死掉,请问是什么问题?如何解决啊?
1。程序运行的过程中(串口发送和接受数据),我随便点击任务条上其他的程序或者本程序,随意点击一段时间后(就是狂点任务条上程序),回到本程序后会发现串口没有工作了,没有发送和接受数据了,请问是什么问题?
2。程序运行中,自动连续测试,发现有时连续测试了一百多个、几十个之后串口死掉,请问是什么问题?如何解决啊?
解决方案 »
- 怎样把一个存有图片的字段内容赋值给另外一个DBImage1?
- 谁能发image控件调入TGA文件的代码
- 菜鸟问题,不过等着用,帮忙谢谢!!
- 怎么在RAVE报表中进行列数值的计算
- 我想在面板上做一个网址或是邮箱的连接,如何实现呢?
- ????????错哪里了????????
- 怎么向程序发送用户名及密码?
- 谁能介绍几种字符串的加密算法?谢谢
- 要疯了,请delphi匠进来看看。真的被磨死了。每个delphi匠都要进来,因为与你们密切相关
- 送分,送分,有谁能帮我解释一下DELPHI中的RTTI吗?(详细点:))
- 可以利用COM+来传输文件吗?如果可以,该怎样实现呢?
- dephi6的控件修改成支持delphi7要注意些什么问题?
可以在程序里用一个Timer定时发送和接收数据...2..建议你用多线程做..
我用的是控件的事件:代码如下:
主要是这个事件:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
block:array[0..19] of byte;//接收
block2:array[0..19] of byte;//发送
begin
ApdComPort1.GetBlock(block,Count);
case block[0] of
$A1:begin
...处理数据
ApdComPort1.PutBlock(block2,size of block2);// 发送确认信息
imge1.canvas.textout('1111');//用图形显示
end;
$A2:begin
...
end;
......
end;
end;
我的就是在这个事件里面处理的,没有用到线程,如用线程有无例子可以参考???谢谢!!!
如果是,那么第一个问题 程序会不会失去了焦点??
接收:C801945D (接收的数据包)
发送:06 (确认信息)
接收:C8014D16
发送:06
接收:C8014C15
发送:06
接收:C8014C15C8014C15C8014C15C8014C15C8014C15C8014C15C8014C15C8014C15C8014C15 (错误了,不知道是不是PC这里来不及发应?)
接收:C8014E17
发送:06