91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 18KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-05
  • 語言: 其他
  • 標(biāo)簽: SIM7600??LBS??

資源簡介

SIM7600單片機C測試代碼,含基站定位,2G3G4G全網(wǎng)通,項目成功應(yīng)用

資源截圖

代碼片段和文件信息

/*代碼說明:用SIM900A或SIM2000C的GPRS服務(wù)*/
/*SIM900A;SIM2000C代碼調(diào)用相同,程序會自動區(qū)分模塊*/
#include?“sim900a.h“
#include?
#include?
#include?
#include?“delay.h“
#include?“hal.h“
#include?
volatile?unsigned?long?Sim900a_TimerOut;//全局變量,SIM900A超時變量,ms單位

volatile?unsigned?char?TcpMuxConnectState[5];
volatile?unsigned?char?Sim900aState=0;//標(biāo)記初始化狀態(tài),Bit0~Bit7,LBS啟動
volatile?unsigned?char?Sim900a_Rcv_Buf[SIM900_MAX_LEN];//SIM900A數(shù)據(jù)接收緩存
volatile?unsigned?int?Sim900aRdPt=0Sim900aWrpt=0;//串口數(shù)據(jù)讀寫指針
volatile?unsigned?char?cops_mode=0xff;//運營商名稱,默認非CDMA2000
unsigned?char?g_ucSMSCNumber[14];
void?(*PutsData2Sim900A)(unsigned?char?cmd[]);//函數(shù)指針,指向底層字符串發(fā)送函數(shù)。在系統(tǒng)初始化時需要指向底層硬件發(fā)送函數(shù)。
void?(*PutcData2Sim900A)(unsigned?char?cmd);//指向底層單字符發(fā)送函數(shù)
unsigned?char?TempParseBuf[SIM900_MAX_LEN];
//發(fā)送命令到SIM900A
//參數(shù):cmd--要發(fā)送的命令flag--期望得到的回復(fù)timerout--超時時長ms單位
unsigned?char?SendCmd2SIM900A(unsigned?char?cmd[]unsigned?char?flag[]unsigned?int?timerout)
{
//unsigned?char?buf[SIM900_MAX_LEN];
unsigned?char?len=0;
char*?pointer;
Sim900aRdPt=Sim900aWrpt=0;//命令發(fā)送之前清除讀寫指針
Sim900a_TimerOut=timerout;
????????if(PutsData2Sim900A!=0x00)
PutsData2Sim900A(cmd);????????
else?return?FALSE;
????????memset(TempParseBuf0SIM900_MAX_LEN);
if(flag==0)return?1;

while(Sim900a_TimerOut)
{
if(Sim900aWrpt!=Sim900aRdPt)//如果有新數(shù)據(jù)
{
TempParseBuf[len++]=Sim900a_Rcv_Buf[Sim900aRdPt++];
if(Sim900aRdPt>=SIM900_MAX_LEN)Sim900aRdPt=0;
}
if(len>2)//前后各有一個回車換行,所以至少要有4個數(shù)據(jù)
{
??????????????????pointer=strstr(TempParseBuf“ERROR“);//先找ERROR
??????????????????if(pointer!=NULL)//返回字符串包含了ERROR,此時也需要退出
??????????????????{
???????????????????????return?0;
??????????????????}
??????????????????else?
??????????????????{
????????????????????????pointer=strstr(TempParseBufflag);//查找匹配字符串
if(pointer!=NULL)//找到了匹配的返回字符串
{
return?1;
}
??????????????????}
}
}
return?0;
}
unsigned?char?GetSMSCNumber(unsigned?char?Number[])
{
???unsigned?int?len=0;
???char*?pointer;
???unsigned?int?i=0;
???memset(TempParseBuf0SIM900_MAX_LEN);
???Sim900aRdPt=Sim900aWrpt=0;//命令發(fā)送之前清除讀寫指針
???if(PutsData2Sim900A!=0x00)
PutsData2Sim900A(“AT+CSCA?\r\n“);
???else?return?FALSE;
???len=0;
???Sim900a_TimerOut=1000;
???while(Sim900a_TimerOut>0)//超時時間未到
???{
??????if(Sim900aWrpt!=Sim900aRdPt)//如果有新數(shù)據(jù)
????????{
????????????????TempParseBuf[len++]=Sim900a_Rcv_Buf[Sim900aRdPt++];
????????????????if(Sim900aRdPt>=SIM900_MAX_LEN)Sim900aRdPt=0;
????????}
??if(len>=2)//前后各有一個回車換行,所以至少要有4個數(shù)據(jù)
??{
if(TempParseBuf[len-2]==‘O‘&&TempParseBuf[len-1]==‘K‘)
{
pointer=strstr(TempParseBuf“+CSCA“);
if(pointer!=NULL)//找到了匹配的返回字符串
{
???for(i=0;i<13;i++)Number[i]=*(pointer+9+i);
???Number[13]=‘\0‘;
???return?1;
}
else
{return?0;}//未找到匹配的字符串
}
??????}
???}
???return?0;
}
//獲取SIM卡類型
//0~11
//0xff獲取失敗
unsigned?char?GetIMSI()
{
??unsigned?int?len=0;
??unsigned?char?str[20];
???uns

評論

共有 條評論