做gprs测试,一个串口数据接收函数里,我用了一个sprintf函数,语句如下:
u8 *p,*p1,*p2,*p3;
p=mymalloc(SRAMIN,100); //申请100字节内存
p1=mymalloc(SRAMIN,100); //申请100字节内存
......
p3=(u8*)strstr((const char*)USART2_RX_BUF,"^^^ccc"); //检验串口2是否收到发送的数据“^^^abc”
p3[6]=0;//加入结束符
printf("p3:%s\r\n",p3); //接收到的数据用串口1打印出来
sprintf((char*)p1,"Receive Date:%s",p3);
for(i=1;i<=6;i++) //接收到的数据用串口1逐个打印
{
printf("%c\r\n",*(p3+i-1));
}
printf("p1:%s\r\n",p1); //接收到的数据用串口1打印出来
......
myfree(SRAMIN,p);
myfree(SRAMIN,p1);
我在服务器端发送字符“^^^abc”,串口1打印情况如下:
没有用sprintf合并之前,通过p3输出这个字符串是正常的,合并之后在打印就变成了::::::,这是什么情况,哪位大侠帮我分析下,谢谢啦!
|