69,373
社区成员
发帖
与我相关
我的任务
分享
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;
}
1A 本身就是16进制的数。char buf5[]={0x1A,0x0D,0x0A};这么定义应该就能发送了。0x0D 0x0A是\r的16进制数