2条回答 默认 最新
- m0_49672108 2021-06-05 15:27关注
public bool SendModbusData(ref byte[] values) { string result = string.Join(",", values); if (serialPort1.IsOpen) { //Clear in/out buffers: serialPort1.DiscardOutBuffer();//清空发送、接收缓冲区字节 serialPort1.DiscardInBuffer(); textBox1.Text = result; //Function 3 response buffer: byte[] response = new byte[values.Length + 2]; //把value数组复制到response数组 Array.Copy(values, response, values.Length); byte[] CRC = new byte[2]; GetCRC(response, ref CRC); response[0] = Convert.ToByte(response[0]);//地址 response[1] = Convert.ToByte(response[1]);//功能 //values[2] = (byte)(Convert.ToByte(values[2])>>8);//寄存器地址 response[2] = Convert.ToByte(response[2]); response[3] = Convert.ToByte(response[3]); //values[2] = (byte)(Convert.ToByte(values[]) >> 8);//寄存器个数 response[4] = Convert.ToByte(response[4]); response[5] = Convert.ToByte(response[5]); response[response.Length - 2] = CRC[0]; response[response.Length - 1] = CRC[1]; values = response; //返回带有 CRC 验证的modbus 数据包 //Console.WriteLine(values.Length); //for (int i = 0; i < values.Length; i++) //{ // Console.WriteLine(values[i]);//控制台输出打包后的Modbus数据 //} //Send modbus message to Serial Port: try { serialPort1.Write(values, 0, values.Length); return true; } catch (Exception) { return false; } } }
这是程序的代码,请大神帮我看看
解决 无用评论 打赏 举报
悬赏问题
- ¥15 请各位帮我看看是哪里出了问题
- ¥15 vs2019的js智能提示
- ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
- ¥15 uniapp的h5项目写一个抽奖动画
- ¥15 TeleScan不能修改bar
- ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
- ¥15 hadoop中启动hive报错如下怎么解决
- ¥15 如何优化QWebEngineView 加载url的速度
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息