-
Notifications
You must be signed in to change notification settings - Fork 5
/
GSM.c.orig
80 lines (72 loc) · 1.11 KB
/
GSM.c.orig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "GSM.h"
#include "uart2.h"
#include "uart1.h"
#include "string.h"
#include "delay.h"
#include "devices.h"
uchar rec_data[50];
uchar rec_num;
uchar hand(uchar *ptr)//和gsm模块进行握手检测
{
if(strstr(rec_data,ptr)!=NULL)
return 1;
else
return 0;
}
void clear_rec_data()//清除串口二接收到的数据
{
uchar i;
for(i=0;i<strlen(rec_data);i++)
{
rec_data[i]='0';
}
rec_num=0;
}
void SIM800_Sync_Baudrate()//同步波特率函数
{
uchar i=0;
UART2_TC("AT\r\n");
while(!hand("OK"))
{
clear_rec_data();
i++;
UART2_TC("AT\r\n");//
delay_ms(500);//延时
beep(10,1);//短鸣叫
UART_TC("GSM正在同步波特率\r\n");
if(i>=5)
{
UART_TC("GSM波特率同步失败\r\n");
break;
}
else
{
}
}
UART_TC("GSM波特率同步成功\r\n");
beep(500,2);//握手成功
}
void SIM800_Hand()//握手函数
{
uchar i=0;
UART2_TC("ATI\r\n");
while(!hand("OK"))
{
clear_rec_data();
i++;
UART2_TC("ATI\r\n");//
delay_ms(500);//延时
beep(10,1);//短鸣叫
UART_TC("GSM握手中\r\n");
if(i>=5)
{
UART_TC("GSM握手失败\r\n");
break;
}
else
{
}
}
UART_TC("GSM握手成功\r\n");
beep(500,3);//握手成功
}