串口怎么样收发16进制数据

yixiaojun 2010-09-13 11:02:51
各位,我怎么通过VS2005接收和发送串口的数据?
如我发送的数据是"7E 02 01 00 00 ",然后需要转换成16进制,接收到的数据也是16进制的,如"71 01 01 00....",有可能是几次才能接收成功,因为数据包比较大,应该怎样接收数据?
...全文
256 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
steven_huangyaoshi 2010-09-14
  • 打赏
  • 举报
回复
SerialPort控件 THREAD.SLEEP等待时间 如果要字符串和16进制转化的话:
public byte[] hexStringToByte(string hex)
{
int len = (hex.Length / 2);
byte[] result = new byte[len];
for (int i = 0; i < len; i++)
{
try { result[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16); }
catch { result[i] = 0x00; } //不能转化的就用0x00表示
}
return result;
}

/// <summary>
/// byte转化为16进制字符串
/// </summary>
/// <param name="bArray"></param>
/// <returns></returns>
public string bytesToHexString(byte[] bArray)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bArray.Length; i++)
{
if (Convert.ToString(bArray[i], 16).Length == 1)
sb.Append("0");
sb.Append(Convert.ToString(bArray[i], 16));
}
return sb.ToString();
}
freeboy827 2010-09-13
  • 打赏
  • 举报
回复

byte[] buffer = new byte[256]

serialport.read(buffer,0,位数)
兔子-顾问 2010-09-13
  • 打赏
  • 举报
回复
缓存,判断数据是否完整,判断是否正确有效。我博客中有些例子。
gongsun 2010-09-13
  • 打赏
  • 举报
回复
你用C#,写一个 类似 串口助手 的 东东...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧