首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

怎么发送16进制的数组

2012-03-08 
如何发送16进制的数组如何发送一个含有0x00的16进制的数组,如:f5 02 00 00 01 00 03 f5我使用的方式是:voi

如何发送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++;
}
}

热点排行