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