This commit is contained in:
2026-04-23 10:50:18 +08:00
commit a436fda935
844 changed files with 272643 additions and 0 deletions

View File

@ -0,0 +1,571 @@
#include "general_type.h"
#include "bc25.h"
#include "delay.h"
#include "bsp.h"
char IOT_Theme_TYPE = 0;
BC25 BC25_Status;
void BC25CTR_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOC, &GPIO_InitStructure);
PWRKEY_L;
}
//ģ<><EFBFBD><E9BFAA>
void BC25_PWRKEY_ON(void)
{
PWRKEY_H;
delay_ms(200);
delay_ms(1000);
PWRKEY_L;
}
void BC25_POWERON(void)
{
PWR_CTRLBC25_H;
}
void BC25_POWEROFF(void)
{
PWR_CTRLBC25_L;
}
u8 BC25_Init(void)
{
u8 i=0;
char *strx;
BC25_Status.netstatus=0;
BC25_Status.CSQ=0;
BC25_Status.cpin=0;
BC25CTR_Init();
BC25_POWERON();
delay_ms(1000);
BC25_PWRKEY_ON();
delay_ms(2000);
USART2_ReceiveBuff_Clear();
strx=NULL;
while((i<10)&(!strx))
{
USART2_ReceiveBuff_Clear();
printf("AT+CPIN?\r\n");//<2F>Ƿ<EFBFBD>װ<EFBFBD><D7B0>
delay_ms(5000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+CPIN: READY");//<2F><>1
i++;
if(i>3)
{
return 1;
}
}
BC25_Status.cpin=1;
printf("AT+CPSMS=0\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(1000);
printf("AT+QSCLK=0\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(500);
// printf("AT^TRACECTRL=1\r\n");//LOG<4F>ϱ<EFBFBD>
// delay_ms(1000);
delay_ms(5000);
//exf_getfree("0", &tf_totals, &tf_frees);
strx=NULL;
while((!strx)&(i<10))
{
USART2_ReceiveBuff_Clear();
printf("AT\r\n");
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,"OK");//<2F><><EFBFBD><EFBFBD>OK
if(!strx)
{
BC25_POWERON();
delay_ms(500);
BC25_PWRKEY_ON();
}
i++;
}
USART2_ReceiveBuff_Clear();
printf("AT+QSELFREGISTER=1\r\n"); //<2F>Զ<EFBFBD>ע<EFBFBD><D7A2>
delay_ms(300);
printf("ATE0\r\n"); //<2F>رջ<D8B1><D5BB><EFBFBD>
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD>OK
printf("AT+QLEDMODE=1\r\n"); //<2F><><EFBFBD><EFBFBD>LED
delay_ms(500);
printf("AT+CPSMS=0\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD>OK
printf("AT+QLEDMODE=1\r\n");//led on
delay_ms(500);
USART2_ReceiveBuff_Clear();
printf("AT+QCCID\r\n");//<2F><><EFBFBD><EFBFBD>SIM<49><4D>
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD>OK
i=0;
//
//
//
// USART2_ReceiveBuff_Clear();
// printf("AT+CPIN?\r\n");//<2F><><EFBFBD><EFBFBD>SIM<49><4D>
// delay_ms(500);
// strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD>OK
// i=0;
while((i<15)&(!strx))
{
i++;
printf("AT+QCCID\r\n");//<2F><><EFBFBD><EFBFBD>SIM<49><4D>
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QCCID");//<2F><><EFBFBD><EFBFBD>OK
if(i>10)
return 1;
}
BC25_Status.cpin=1;
// printf("AT+CGATT=1\r\n");//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>״̬
// delay_ms(1000);
USART2_ReceiveBuff_Clear();
printf("AT+CGATT?\r\n");//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>״̬
delay_ms(1000);
//u5_printf("CGATT:%s\r\n",(const char*)USART2_RX_BUF);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+CGATT: 1");//<2F><>1
i=0;
while((i<15)&(!strx))
{
USART2_ReceiveBuff_Clear();
printf("AT+CGATT?\r\n");//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>״̬--<2D><><EFBFBD><EFBFBD>
delay_ms(2000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+CGATT: 1");//<2F><>1
i++;
if(i>10)
return 1;
}
BC25_Status.netstatus=1;
USART2_ReceiveBuff_Clear();
printf("AT+CESQ\r\n");//<2F><EFBFBD><E9BFB4>ȡCSQֵ
delay_ms(300);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+CESQ");//<2F><><EFBFBD><EFBFBD>CSQ
if(strx)
{
BC25_Status.CSQ=(strx[7]-0x30)*10+(strx[8]-0x30);//<2F><>ȡCSQ
__nop();
// if((BC25_Status.CSQ==99)||((strx[7]-0x30)==0))//˵<><CBB5>ɨ<EFBFBD><C9A8>ʧ<EFBFBD><CAA7>
// {
// BC25_Status.netstatus=0;
// return 7;
// }
// else
// {
// BC25_Status.netstatus=1;
// }
}
USART2_ReceiveBuff_Clear();
// printf("AT+CSQ\r\n");//
// delay_ms(500);
//u5_printf("AT+CSQ:%s\r\n",(const char*)USART2_RX_BUF);
return 0; //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD>
}
void BC25_CloseSocket(void)
{
char *strx;
u8 i=0;
USART2_ReceiveBuff_Clear();
//printf("AT+QICLOSE=0\r\n");//<2F>ر<EFBFBD>socekt<6B><74><EFBFBD><EFBFBD>---TCP
printf("AT+QMTCLOSE=0\r\n");//<2F>ر<EFBFBD>socekt<6B><74><EFBFBD><EFBFBD>---MQQT
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QMTCLOSE: 0,0");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>
while((!strx)&(i<3))
{
USART2_ReceiveBuff_Clear();
printf("AT+QMTCLOSE=0\r\n");//<2F>ر<EFBFBD>socekt<6B><74><EFBFBD><EFBFBD>---MQQT
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QMTCLOSE: 0,0");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>
//u5_printf("BC25_CloseSocket %d\r\n",i);
//u5_printf("USART2_RX_BUF:%s\r\n",(const char*)USART2_RX_BUF);
i++;
}
if(strx)
{
//u5_printf("BC25_CloseSocket OK\r\n");
return;
}
if(!strx)
{
USART2_ReceiveBuff_Clear();
printf("AT+QMTCLOSE=0\r\n");//<2F>ر<EFBFBD>socekt<6B><74><EFBFBD><EFBFBD>---MQQT
delay_ms(500);
//u5_printf("BC25_CloseSocket 2\r\n");
}
}
void BC25_CreateSokcet(char *ip,char *port)//<2F><><EFBFBD><EFBFBD>sokcet
{
char *strx;
u8 i=0;
char ID_TEMP[20] = {'\0'};
delay_ms(1000);
USART2_ReceiveBuff_Clear();
// printf("AT+QMTCFG=?\r\n");//<2F><><EFBFBD>Բ鿴MQTT<54><54><EFBFBD><EFBFBD>
// delay_ms(1000);
sprintf(ID_TEMP,"\"%s\"",Init_Data_Equipment.Equipment_ID);
// printf("AT+QIOPEN=1,0,\"TCP\",\"219.238.240.58\",9022,0,1\r\n");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP,<2C><><EFBFBD><EFBFBD>IP<49>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF><DABA><EFBFBD> ,<2C><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>³<EFBFBD><C2B3>ķ<EFBFBD>ʽ
printf("AT+QMTOPEN=0,%s,%s\r\n",Init_Data_Equipment.Bc25_Ip,Init_Data_Equipment.Bc25_Port);
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QMTOPEN: 0,0");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>½<EFBFBD>ɹ<EFBFBD>
while((!strx)&(i<5))
{
BC25_CloseSocket();
delay_ms(500);
USART2_ReceiveBuff_Clear();
printf("AT+QMTOPEN=0,%s,%s\r\n",Init_Data_Equipment.Bc25_Ip,Init_Data_Equipment.Bc25_Port);//219.238.240.58 9022
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QMTOPEN: 0,0");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>½<EFBFBD>ɹ<EFBFBD>
i++;
}
//<2F><><EFBFBD>ӵ<EFBFBD> MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART2_ReceiveBuff_Clear();
printf("AT+QMTCONN=0,\"%s\",%s,%s\r\n",Init_Data_Equipment.Equipment_ID,Init_Data_Equipment.IOT_Username,Init_Data_Equipment.IOT_Password);
//printf("AT+QMTCONN=0,\"lica\",\"lichao\",\"910517@lc\"\r\n");
// printf("AT+QMTCONN=?");
delay_ms(2000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QMTCONN: 0,0,0");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
while((!strx)&(i<5))
{
BC25_CloseSocket();
delay_ms(500);
USART2_ReceiveBuff_Clear();
printf("AT+QMTCONN=0,\"%s\",%s,%s\r\n",Init_Data_Equipment.Equipment_ID,Init_Data_Equipment.IOT_Username,Init_Data_Equipment.IOT_Password);
//printf("AT+QMTCONN=0,\"lica\",\"lichao\",\"910517@lc\"\r\n");
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QMTCONN: 0,0,0");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
i++;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART2_ReceiveBuff_Clear();
printf("AT+QMTSUB=0,1,\"%s/config\",2\r\n",Init_Data_Equipment.IOT_Theme_name);
//printf("AT+QMTSUB=0,1,\"bc25test\",2\r\n");
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
while((!strx)&(i<5))
{
BC25_CloseSocket();
delay_ms(500);
USART2_ReceiveBuff_Clear();
printf("AT+QMTSUB=0,1,\"%s/config\",2\r\n",Init_Data_Equipment.IOT_Theme_name);
//printf("AT+QMTSUB=0,1,\"bc25test\",2\r\n");
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
i++;
}
// //<2F><><EFBFBD>ı<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
// USART2_ReceiveBuff_Clear();
// printf("AT+QMTSUB=0,1,\"%s/tablehead\",2\r\n",Init_Data_Equipment.IOT_Theme_name);
// //printf("AT+QMTSUB=0,1,\"bc25test\",2\r\n");
// delay_ms(1000);
// strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
//
// while((!strx)&(i<5))
// {
// BC25_CloseSocket();
// delay_ms(500);
// USART2_ReceiveBuff_Clear();
// printf("AT+QMTSUB=0,1,\"%s/tablehead\",2\r\n",Init_Data_Equipment.IOT_Theme_name);
// //printf("AT+QMTSUB=0,1,\"bc25test\",2\r\n");
// delay_ms(1000);
// strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
// i++;
// }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART2_ReceiveBuff_Clear();
printf("AT+QMTSUB=0,1,\"%s/data\",2\r\n",Init_Data_Equipment.IOT_Theme_name);
//printf("AT+QMTSUB=0,1,\"bc25test\",2\r\n");
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
while((!strx)&(i<5))
{
BC25_CloseSocket();
delay_ms(500);
USART2_ReceiveBuff_Clear();
printf("AT+QMTSUB=0,1,\"%s/data\",2\r\n",Init_Data_Equipment.IOT_Theme_name);
//printf("AT+QMTSUB=0,1,\"bc25test\",2\r\n");
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӳɹ<D3B3>
i++;
}
if(strx)
{
BC25_Status.socket=1;
//u5_printf("BC25_CreateSokcet sucess\r\n");
}
if(!strx)
{
BC25_Status.socket=0;
//u5_printf("BC25_CreateSokcet fail\r\n");
}
}
/*
<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int len <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
char *data <20><><EFBFBD><EFBFBD>
*/
void BC25_Senddata(int len,char *data)
{
char *strx;
char lens[5]={'\0'};
u8 times=0;
USART2_ReceiveBuff_Clear();
sprintf(lens,"%d",len);
//u5_printf("BC25_Senddata_lens:%s\r\n",lens);
printf("AT+QISEND=0,%s,\"%s\"\r\n",lens,data);//AT+QISEND
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"SEND OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ͳɹ<CDB3>
while((!strx)&&(times<10))
{
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"SEND OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ͳɹ<CDB3>
times++;
}
}
/*
<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int len <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
char *data <20><><EFBFBD><EFBFBD>
*/
u8 BC25_Senddata_mode(int len,char *data)
{
char *strx;
// char lens[5]={'\0'};
u8 times=0;
u8 i=0;
USART2_ReceiveBuff_Clear();
// sprintf(lens,"%d",len);
// printf("AT+QISEND=0,%s\r\n",lens);
if(IOT_Theme_TYPE == IOT_Theme_config)
{
printf("AT+QMTPUB=0,0,0,0,\"%s/config\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
else if(IOT_Theme_TYPE == IOT_Theme_tablehead)
{
printf("AT+QMTPUB=0,0,0,0,\"%s/tablehead\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
else
{
printf("AT+QMTPUB=0,0,0,0,\"%s/data\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
//printf("AT+QMTPUB=0,0,0,0,\"bc25test\",%d\r\n",len);
//u5_printf("AT+QISEND=0,%d\r\n",len);
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)">");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>յ<EFBFBD>>
while((!strx)&&times<20)
{
times++;
if(IOT_Theme_TYPE == IOT_Theme_config)
{
printf("AT+QMTPUB=0,0,0,0,\"%s/config\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
else if(IOT_Theme_TYPE == IOT_Theme_tablehead)
{
printf("AT+QMTPUB=0,0,0,0,\"%s/tablehead\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
else
{
printf("AT+QMTPUB=0,0,0,0,\"%s/data\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
//printf("AT+QMTPUB=0,0,0,0,\"bc25test\",%d\r\n",len);
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)">");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>յ<EFBFBD>>
if(!strx)
{
USART2_ReceiveBuff_Clear();
if(IOT_Theme_TYPE == IOT_Theme_config)
{
printf("AT+QMTPUB=0,0,0,0,\"%s/config\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
else if(IOT_Theme_TYPE == IOT_Theme_tablehead)
{
printf("AT+QMTPUB=0,0,0,0,\"%s/tablehead\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
else
{
printf("AT+QMTPUB=0,0,0,0,\"%s/data\",%d\r\n",Init_Data_Equipment.IOT_Theme_name,len);
}
//printf("AT+QMTPUB=0,0,0,0,\"bc25test\",%d\r\n",len);
//u5_printf("AT+QISEND=0,%d\r\n",len);
}
//u5_printf("time1:%d,rx1:%s\r\n",times,(const char*)USART2_RX_BUF);
}
if(!strx)return 1;
delay_ms(500);
printf("%s",data);
//u5_printf("%s",data);
delay_ms(1000);
times=0;
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ͳɹ<CDB3>
while((!strx)&&times<20)
{
times++;
printf("%s",data);
delay_ms(1000);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"OK");//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ͳɹ<CDB3>
if(!strx)
{
USART2_ReceiveBuff_Clear();
printf("%s",data);
//u5_printf("%s",data);
}
//u5_printf("time2:%d,rx2:%s\r\n",times,(const char*)USART2_RX_BUF);
}
if(strx)return 0;
else return 1;
}
void BC25_RECData(void)
{
char *strx;
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+QIURC");//<2F><><EFBFBD><EFBFBD>+QIURC
if(strx)
{
USART2_ReceiveBuff_Clear(); //<2F><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
}
}
int set_years, set_mons, set_days, set_hours, set_mins , set_secs;
void BC25_time_RTC(void)
{
u8 i=0;
char *strx;
BC25CTR_Init();
BC25_POWERON();
delay_ms(1000);
BC25_PWRKEY_ON();
delay_ms(500);
printf("AT+CPSMS=0\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(1000);
printf("AT+QSCLK=0\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(8000);
//USART2_ReceiveBuff_Clear();
printf("AT+CPIN?\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(500);
//USART2_ReceiveBuff_Clear();
printf("AT+CEREG?\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(500);
// USART2_ReceiveBuff_Clear();
printf("AT+CFUN?\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(500);
//USART2_ReceiveBuff_Clear();
printf("AT+QBAND?\r\n");//<2F><><EFBFBD><EFBFBD>PSM
delay_ms(500);
//printf("AT+QSELFREGISTER=1\r\n"); //<2F>Զ<EFBFBD>ע<EFBFBD><D7A2>
strx=NULL;
while((i<60)&(!strx))
{
i++;
USART2_ReceiveBuff_Clear();
printf("AT+CGATT?\r\n");//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>״̬
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+CGATT: 1");//<2F><>1
}
if(!strx)return;
strx=NULL;
while((i<60)&(!strx))
{
USART2_ReceiveBuff_Clear();
printf("AT+CCLK?\r\n");//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
delay_ms(500);
strx=strstr((const char*)USART2_RX_BUF,(const char*)"+CCLK:");//<2F><>1
}
if(!strx)return;
strx=strstr((const char*)USART2_RX_BUF,(const char*)"\"");//
strx++;
set_years=(strx[0]-'0')*10+(strx[1]-'0');//<2F><>
set_mons=(strx[3]-'0')*10+(strx[4]-'0');//<2F><>
set_days=(strx[6]-'0')*10+(strx[7]-'0');//<2F><>
set_hours=(strx[9]-'0')*10+(strx[10]-'0');//ʱ
set_mins=(strx[12]-'0')*10+(strx[13]-'0');//<2F><>
set_secs=(strx[15]-'0')*10+(strx[16]-'0');//<2F><>
if(set_years>20)
SetRTC(set_years,set_mons,set_days,set_hours,set_mins,set_secs);
// printf("AT+QENG=0\r\n");//
// delay_ms(500);
// u5_printf("AT+QENG=0:%s\r\n",(const char*)USART2_RX_BUF);
// USART2_ReceiveBuff_Clear();
// printf("AT+CSQ\r\n");//
// delay_ms(500);
// u5_printf("AT+CSQ:%s\r\n",(const char*)USART2_RX_BUF);
// USART2_ReceiveBuff_Clear();
// printf("ATI\r\n");//
// delay_ms(500);
// u5_printf("ATI:%s\r\n",(const char*)USART2_RX_BUF);
}
//void BC25_Process(void)
//{
// char SEND_DATA[500] = {'\0'};
// BC25_Init(); //<2F><>ʼ<EFBFBD><CABC>
// BC25_CloseSocket();//<2F>ر<EFBFBD><D8B1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// BC25_CreateSokcet(Init_Data_Equipment.Bc25_Ip,Init_Data_Equipment.Bc25_Port);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// sprintf(SEND_DATA, "Pub-%s\r\n",data_common1.Pack_data);
// //BC25_Senddata_mode(4,"Pub-");
// BC25_Senddata_mode(strlen(SEND_DATA),(SEND_DATA));
// //BC25_Senddata_mode(2,"\r\n");
//}

View File

@ -0,0 +1,46 @@
#ifndef __BC25_H
#define __BC25_H
#include "sys.h"
#include "general_type.h"
#include "stm32l1xx.h"
#include "stm32l1xx_gpio.h"
#include "stm32l1xx_rcc.h"
#define IOT_Theme_config 1
#define IOT_Theme_tablehead 2
#define IOT_Theme_data 3
#define PWRKEY_H GPIO_SetBits(GPIOC,GPIO_Pin_4) //BC25CTROL<4F><4C><EFBFBD><EFBFBD>
#define PWRKEY_L GPIO_ResetBits(GPIOC,GPIO_Pin_4)
void BC25CTR_Init(void);
void BC25_PWRKEY_ON(void);
void BC25_RECData(void);
void BC25_Senddata(int len,char *data);
void BC25_CreateSokcet(char *ip,char *port);
void BC25_CloseSocket(void);
u8 BC25_Init(void);
void BC25_POWERON(void);
void BC25_POWEROFF(void);
void BC25_Process(void);
u8 BC25_Senddata_mode(int len,char *data);
void BC25_time_RTC(void);
typedef struct
{
uint8_t CSQ; //<2F>ź<EFBFBD>ֵ
uint8_t Socketnum; //<2F><><EFBFBD><EFBFBD>
// uint8_t reclen[10]; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
uint8_t res;
//uint8_t recdatalen[10];
// uint8_t recdata[100];
uint8_t netstatus;//<2F><><EFBFBD><EFBFBD>ָʾ
uint8_t socket;//
uint8_t cpin; //<2F><><EFBFBD>޿<EFBFBD>
} BC25;
extern BC25 BC25_Status;
#endif