解决方案 »
- 水晶报表
- c#读取配置文件(区别注释、项的对应值)
- C++函数中需要传入地址符( GetInf(int itan , PW_TAG &*Stag) ),要把这个函数转成C#调用,后面这个输入参数 怎么该??
- [讨论]用C#自己写了一个连接池但是发现有错误
- asp里输出10个*号这样写 string("*",10) 如果在C#里怎么写?
- velocity的vm模版中的乱码问题,求救
- 别人的Merge总是因为不能修改本地DataSet郁闷,我的则干好相反,Merge总是改变每行rowstate!
- 大家好,问一个static的问题,ConnOpen()加static 为什么不对啊急急
- 请问在C#中怎么动态设置控件的属性?
- 关于DropDownList的问题!
- 请问为什么Debug下面没有.dll文件?
- 关于datatable.compute的问题
定时器还有另外2种,其中一种是开子线程的,你可以换成它,或者直接开启子线程。 Thread thread = new Thread(SendData);
thread.Start();
private void SendData()
{
if (!serialPort.IsOpen)
{
openPort();
}
string strCMD = "010300040001C5F8";//1号机地址
SendAsHex(strCMD);//十六进制发送
Thread.Sleep(500); string strCMD2 = "020300040001C429";//2号机地址
SendAsHex(strCMD2);//十六进制发送
Thread.Sleep(500); string strCMD2 = "030300040001C4a3";//3号机地址
SendAsHex(strCMD2);//十六进制发送
Thread.Sleep(500);
}
程序没有改善,原因有很多。
第一你只发送2号机地址,看看有没有接收到返回数据。
第二有可能是等待的时间不够长,可以把500改大一点。
如果完全没接收到数据,可能是下位机没发送数据过来
程序没有改善,原因有很多。
第一你只发送2号机地址,看看有没有接收到返回数据。
第二有可能是等待的时间不够长,可以把500改大一点。
将时间改成1000ms,已经可以收到数了。多谢。