手上的任务主要是做关于上下位机通信交互的,下位机是一个设定的好的IMU惯性传感器模块,可以通过232通信下发一些指令以实现对其工作模式的控制,问题出现在我下发指令 FF AA 00 01 00 和指令 FF AA 02 08 00时,使用虚拟串口软件虚拟了俩个串口,另一个串口使用串口调试助手打开,发现接受的数据有异常。
串口基础设置
SerialPort sp = new SerialPort();
sp.Close();
sp.PortName = "COM11";
sp.BaudRate = int.Parse("19200");
sp.DataBits = int.Parse("8");
sp.StopBits = (StopBits)int.Parse("1");
sp.ReadTimeout = 500;
数据发送相关代码
string Unlock_Command = "FFAA6988B5";
string SaveSetting = "FFAA000000";
string DefaultSetting = "FFAA000100";
string SetSengdingData = "FFAA020800";
sp.Write(strToHexByte(Unlock_Command), 0, strToHexByte(Unlock_Command).Length);
sp.Write(strToHexByte(SetSengdingData), 0, strToHexByte(SetSengdingData).Length);
sp.Write(strToHexByte(SaveSetting), 0, strToHexByte(SaveSetting).Length);
private byte[] strToHexByte(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % 2) != 0) hexString += " ";
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Replace(" ", ""), 16);
return returnBytes;
}
虚拟串口是虚拟了COM11和COM12
COM12使用野火调试助手打开的
实际接收到的数据如图
试过修改波特率和将数据存储到Byte数组中发送,还是会有这种丢数据的问题出现
下位机模块接收到的数据能够正常
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。