今天碰到很麻烦的问题,先说一下设备情况.
上位机(就是我现在写的程序)首先对设备发送带设备号的召唤命令,设备接收到命令后,如果是对自己召唤,就对上位机返回激活成功应答.
我的程序发送召唤后,怎么都接收不到设备的应答,serialPort_DataReceived事件始终没有触发,我用其他串口调试软件试过,发送带设备号的命令,能接收到设备返回的应答.
难道serialport还有其他东西要设置吗?请高人指教.
上位机(就是我现在写的程序)首先对设备发送带设备号的召唤命令,设备接收到命令后,如果是对自己召唤,就对上位机返回激活成功应答.
我的程序发送召唤后,怎么都接收不到设备的应答,serialPort_DataReceived事件始终没有触发,我用其他串口调试软件试过,发送带设备号的命令,能接收到设备返回的应答.
难道serialport还有其他东西要设置吗?请高人指教.
解决方案 »
- 谁有好的Java或者C#数据结构啊?急的很啊,各位大虾,先谢谢了
- windows 7 C# 添加账户
- 这个C++库里的函数怎么用C#调?
- C#
- 水晶报表控件脱离编译器后运行失效
- java 中的 user.home 属性,在 C# 中用什么方法取得。
- 问一个简单的添加新字段到DataSet的问题
- %%%%%%%%%ASP.NET使用模板的问题...绑定的文字跑在表格外了..%%%%%%%%%%%%%%
- 新手请教visual studio.net问题
- 如何禁止通过DataGrid界面增加新行(而只允许用编程方式增加)
- 重启机子软件运行和结束掉进程后运行有什么不同?急~~~
- 请教linq to sql的问题
Private void SendCall()
{
this.serialPort1.PortName = "com15";
byte[] b = new byte[7];
b[0] = 0xA3;
b[1] = 0xA5;
b[2] = 0xAA;
b[3] = 0xCA;
b[4] = 0x30;
b[5] = 0x35;
b[6] = 0x00;
//前4位验证码,中间两位设备号,最后一位是结束位
serialPort1.Open();
serialPort1.Write(b, 0, b.Length);
}
发送的命令是16进制表示.这样发过去之后还是没有收到设备返回的应答.
难道我发送的命令格式不对?
Serialport.Handshake=Handshake.RequestToSend
SerialPort.RtsEnable=True