比如 命令为 AT+SEND=data{CR}{LF},需要发送AT+SEND=3c,21,01,01,01,23,45,67,89,ab,cd,ef,fe,dc,ba,98,76,54,32,10
20个 1字节的16进制数,中间使用 逗号 隔开
代码为
uchar signin[20]={0x3c,0x21,0x01,0x01,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10};
void Send1Char1(uchar sendchar1)
{
while (!(IFG2 & UTXIFG1)); //等待发送寄存器为空
TXBUF1 = sendchar1;
}
void PutString2(uchar *ptr2)
{
uint i;
IE2 &= ~URXIE1;
while(*ptr2 != ' ')
{
Send1Char1(*ptr2++); // 发送数据
}
while (!(IFG2 & UTXIFG1));
TXBUF1 = signin[0];
for(i=1;i<20;i++)
{
while (!(IFG2 & UTXIFG1));
TXBUF1=',';
while (!(IFG2 & UTXIFG1));
TXBUF1 = signin[i];
}
while (!(IFG2 & UTXIFG1));
TXBUF1 = 0x0d;
while (!(IFG2 & UTXIFG1));
TXBUF1 = 0x0a; //发送换行指令
IE2 |= URXIE1;
}
调用为 PutString2("AT+SEND=");
但是 总是参数错误,不知道问题所在。
此帖出自
小平头技术问答
你要发送的是一个字符串,你中间扔了一堆整型数字算怎么一回事,编程没你想象的那么简单,你要把整型转成字符串才行,另外你开头多发送了一个逗号,编程是要仔细琢磨的
一周热门 更多>