金牌会员
 
- 积分
- 2775
- 金钱
- 2775
- 注册时间
- 2015-6-1
- 在线时间
- 394 小时
|
发表于 2016-5-17 14:34:44
|
显示全部楼层
sim900a_send_cmd(AT,sizeof(AT),"OK",50); //同步波特率
rt_kprintf("AT\r\n");
sim900a_send_cmd(AT_CIPCLOSE,sizeof(AT_CIPCLOSE),"CLOSE OK",50);
rt_kprintf("AT_CIPCLOSE\r\n");
sim900a_send_cmd(AT_CIPSHUT,sizeof(AT_CIPSHUT),"SHUT OK",50);
rt_kprintf("AT_CIPSHUT\r\n");
sim900a_send_cmd(AT_CGCLASS,sizeof(AT_CGCLASS),"OK",400);
rt_kprintf("AT_CGCLASS\r\n");
sim900a_send_cmd(AT_CGDCONT,sizeof(AT_CGDCONT),"OK",50);
rt_kprintf("AT_CGDCONT\r\n");
//还有好多条,看你使用SIM900A的什么功能
uint8 sim900a_send_cmd(uint8 *cmd,uint8 length,uint8 *ack,uint16 time)
{
int temp = 0;
uint8 buf[500];
while(temp<length-1) //-1是因为取长度时最后一位会多出来一个0
{
while((USART3->SR&0X40)==0);
USART3->DR = cmd[temp];
temp++;
}
rt_thread_delay(time);
// 读取串口数据
rt_UartReadGSM(buf); //GSM模块每次得到的数据为80字节左右
if (rt_strstr((const char*)buf, (const char*)ack))//
{
return 1;
}
else
{
rt_kprintf("NOK~~ ");
return 0;
}
}
意思就是向sim900A发指令,然后它会自动回复OK CONNECT OK之类的消息,你就去检测它的消息是不是自己想要的。这个是自己照着某个代码改的,你也自己改改。发送就四行代码,主要是怎么接收怎么解析改改就行了。 |
|