/* 下面的程序是从usb_Buf_try[100]数组内的长字符串中,提取出+MIPLOBSERVE: 0,后面的观察号“69234”,这个观察号是动态的,提取后的观察号放入objtnum 然后,用sprintf()组合含有观察号的新字符串命令,通过串口Uart1_SendStr()发送给上位机串口调试助手。 问题:串口助手收到的数据显示是:AT+MIPLOBSERVERSP=0,,1 //发现里面没有显示观察号!!!!! 如果直接加入char objtnum[]="69234"; 则显示正确为:AT+MIPLOBSERVERSP=0,69234,1 */ #include "string.h" #include "stdio.h" char *strx; char atstr[100]; //存发送at指令数组 char objtnum[20];//观察号 char usb_Buf_try[100]="MIPLEVENT: 0,6 +MIPLOBSERVE: 0,69234,1,3311,0,-1"; strx=strstr((const char*)usb_Buf_try,(const char*)"+MIPLOBSERVE"); //截取字符串strs=“+MIPLOBSERVE: 0,69234,1,3311,0,-1" memset(objtnum,0,sizeof(objtnum)); //清objtnum数组内容 sscanf(strx, " %*s %*s %s", objtnum); //将strx的字符串内容格式化输入后,输入到objtnum中 // char objtnum[]="69234"; memset(atstr,0,sizeof(atstr)); sprintf(atstr,"AT+MIPLOBSERVERSP=0,%s,1\r\n",objtnum); //组合成带<objtnum>观察号的“响应订阅请求”命令 Uart1_SendStr(atstr);//发送“响应订阅请求”命令!
|