我想用Hi3861的uart串口发送16进制命令(BB 00 22 00 00 22 7E),但是一直不成功
下面代码是C#中将十六进制字符串转换为byte数组,可以成功通信
byte[] array = null;
string text = "BB 00 22 00 00 22 7E ";
text = text.Replace(" ", "");
if (text.Length % 2 == 1)
{
text = text.Remove(text.Length - 1, 1);
}
List list = new List();
for (int i = 0; i < text.Length; i += 2)
{
list.Add(text.Substring(i, 2));
}
array = new byte[list.Count];
for (int j = 0; j < array.Length; j++)
{
array[j] = (byte)Convert.ToInt32(list[j], 16);
}
下图代码是树莓派用Python将字符串转换为16进制,可以成功通信
下图是我C语言中直接用uint_8类型存的16进制并发送,通信失败
请问C语言中该怎么修改才能实现类似于C#和python中的效果并成功通信?
https://leung-manwah.blog.csdn.net/article/details/126336791
该回答引用GPTᴼᴾᴱᴺᴬᴵ
C语言相比于C#和Python,较为底层,需要自己实现底层的网络通信协议和数据序列化等操作,相对比较复杂。但是如果您想要在C语言中实现网络通信,可以考虑以下步骤:
总的来说,实现网络通信需要考虑的因素较多,需要对C语言底层的网络编程有深入的了解。如果您不熟悉C语言底层的网络编程,可以参考相关书籍或网上的教程进行学习。