GSM串口编程,怎么实现发送:1A(十六进制发送)<回车>???

lzz1991 2012-11-29 07:44:01



前面的AT指令都符合了,就差怎么发送:1A(十六进制发送)<回车>
应该怎么实现???求高手解答
附已经实现的部分代码:
int main(void)
{
int fd,flag=0;
int nread,i;
int m;

char buf[]="AT\r";
char buf1[]="AT+CMGF=1\r";
char buf2[]="AT+CSCA=+8613800773500\r";
char buf3[]="AT+CMGS=13557132924\r";
char buf4[]="hello";
char buf5[]="1A\r";

//int fd = FALSE;

int ret,ret1,ret2,ret3,ret4,ret5;

char rcv_buf[30],rcv_buf1[30],rcv_buf2[50],rcv_buf3[50],rcv_buf4[50];
char rcv_buf5[50];

int j,j1,j2,j3,j4,j5;
if((fd=open_port(fd,2))<0)
{
perror("open_port error");
return ;
}

if((i=set_opt(fd,9600,8,'N',1))<0){
perror("set_port error");
return ;
}

UART_Send(fd,buf,strlen(buf));
memset(rcv_buf,0,sizeof(rcv_buf));

for(j=0;;j++)

{

ret = UART_Recv(fd, rcv_buf,30);

if( ret > 0){

rcv_buf[ret]='\0';

printf("%s",rcv_buf);


}

if('\n' == rcv_buf[ret-1])

break;
}


UART_Send(fd,buf1,strlen(buf1));
memset(rcv_buf1,0,sizeof(rcv_buf1));

for(j1=0;;j1++)

{

ret1 = UART_Recv(fd, rcv_buf1,30);

if( ret1 > 0){

rcv_buf1[ret1]='\0';

printf("%s",rcv_buf1);


}


if('\n' == rcv_buf1[ret1-1])

break;

}
UART_Send(fd,buf2,strlen(buf2));
memset(rcv_buf2,0,sizeof(rcv_buf2));

for(j2=0;;j2++)

{

ret2 = UART_Recv(fd, rcv_buf2,50);

if( ret2 > 0){

rcv_buf2[ret2]='\0';

printf("%s",rcv_buf2);


}

if('\n' == rcv_buf2[ret2-1])

break;

}
UART_Send(fd,buf3,strlen(buf3));
memset(rcv_buf3,0,sizeof(rcv_buf3));

for(j3=0;;j3++)

{

ret3 = UART_Recv(fd, rcv_buf3,50);

if( ret3 > 0){

rcv_buf3[ret3]='\0';

printf("%s",rcv_buf3);


}
else


if('\n' == rcv_buf3[ret3-1])

break;

}
UART_Send(fd,buf4,strlen(buf4));
memset(rcv_buf4,0,sizeof(rcv_buf4));

for(j4=0;;j4++)

{

ret4 = UART_Recv(fd, rcv_buf4,20);

if( ret4 > 0){

rcv_buf4[ret4]='\0';

printf("%s",rcv_buf4);


}



if('\n' == rcv_buf4[ret4-1])

break;

}

/*UART_Send(fd,buf5,30);
memset(rcv_buf5,0,sizeof(rcv_buf5));

for(j5=0;;j5++)

{

ret5 = UART_Recv(fd, rcv_buf5,50);

if( ret5 > 0){

rcv_buf5[ret5]='\0';

printf("%s",rcv_buf5);


}

if('\n' == rcv_buf5[ret5-1])

break;

}*/

return 0;
}
...全文
488 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Viliems 2013-12-06
  • 打赏
  • 举报
回复
哈哈,学习了,之前也看到楼主这个帖子,没想到在这里解决了,哈哈我也受教啦,感谢楼主,感谢沙发!!!
Viliems 2013-12-06
  • 打赏
  • 举报
回复
引用 2 楼 lzz1991 的回复:
引用 1 楼 cfy84 的回复:
1A 本身就是16进制的数。char buf5[]={0x1A,0x0D,0x0A};这么定义应该就能发送了。0x0D 0x0A是\r的16进制数
非常感谢你!!!!弄了几周,终于能发送短信了
可以把你的代码共享一下吗?
lzz1991 2012-11-30
  • 打赏
  • 举报
回复
引用 1 楼 cfy84 的回复:
1A 本身就是16进制的数。char buf5[]={0x1A,0x0D,0x0A};这么定义应该就能发送了。0x0D 0x0A是\r的16进制数
非常感谢你!!!!弄了几周,终于能发送短信了
cfy84 2012-11-30
  • 打赏
  • 举报
回复
1A 本身就是16进制的数。char buf5[]={0x1A,0x0D,0x0A};这么定义应该就能发送了。0x0D 0x0A是\r的16进制数

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧