mg323模块发送数据时必需要指明长度,所以我就把函数改了:
void mg323_gprs_send(u16 x,u16 y,u8 *text_to_send,u8 text_length)
{
u8 a[15];
u8 *p=a;
memset(p,0,15);
sprintf((char*)p,”AT^SISW=1,%c”,text_length+48); //”AT^SISW=1,n“为发送指令,n表明发送长度
USART2_RX_STA=0;
if(mg323_send_cmd(p,”^SISW”,500))
{
LCD_ShowString(x,y+120,200,16,16,”Send failed:1!”);
}
if(mg323_send_cmd(text_to_send,”^SISW”,500)) //此指令会在数据后边加””,不过没有关系由于发送的数据限定在text_length个字节
{
LCD_ShowString(x,y+120,200,16,16,”Send failed:2!”);
}else LCD_ShowString(x,y+120,200,16,16,”Text send is successed!”);
}
这样一来我要读入这个长度,可是我发现sprintf((char*)p,”AT^SISW=1,%c”,text_length+48);这个当地,长度必需要加48,然后规模有必要是0-9,大于这个数就出现下面状况:
有没有什么方法能够把一个两位或三位数字合并到这个字符串里?
这个问题还没处理,可是单单这一个text_length+48就折腾了我半响,还弄的有点模糊。。。在此做个符号!