问题描述
我想将输入的字符串转换为十六进制如“1234,5678,123”但是厂家协议如下,privatevoidbutton3_Click(objectsender,EventArgse){Stringstr1;str1=textBox1.Text;byte[]data=Encoding.Default.GetBytes(str1);if(checkBox1.Checked==true){for(inti=0;i<data.Length;i++){bytetemp=data[i];stringtempHex=temp.ToString("X2")+"";serialPort1.Write(tempHex);}}else{serialPort1.Write(data,0,data.Length);}}
解决方案
解决方案二:
解决方案三:
就用协议上的例子测试,Write之前Trace到调试窗口,看看是否和协议上的一致
解决方案四:
发送数据协议当然重要,前提是你的波特率,数据位,校验位什么的都正确,并且要考虑设备的接收能力,有的设备连续发送则失败,两字节之间慢一点点点就成功。建议找个串口调试助手先手工收发试试。
时间: 2024-09-17 12:19:16