当前位置: 代码迷 >> 单片机 >> 怎么发送16进制的数组
  详细解决方案

怎么发送16进制的数组

热度:100   发布时间:2016-04-28 16:10:05.0
如何发送16进制的数组
如何发送一个含有0x00的16进制的数组,如:f5 02 00 00 01 00 03 f5 

我使用的方式是:

void UART1_Send_Hex(char *cmd,int n)
{
  int i=0;
  for(i=0;i<n;i++)
  {
  UCA1TXBUF =*cmd;
  cmd++;
  }
}

但是这个方法有很大的缺点,就是第一,你必须要先知道数组的长度,第二是要有2个参数。
有没有什么更巧妙的方法,只用一个参数即可。

------解决方案--------------------
呵可,帮你再升华下。含 0x00 数据不能使用 Str类操作,所以用Buf类操作,一定要提供长度

所以就只有两类发送操作: 发送缓冲区(Buf) 发送字符串(Str) 。

所有通信操作均如此,无论串口还是网络。 设计这类接口函数时发送的,肯定至少有两个函数名后缀肯定是 XXXBuf,XXXStr。



void UART1_Send_Buf(const char *buf,int n)
{
while(n--)
{
UCA1TXBUF =*cmd++;
}
}

  相关解决方案