20260324
This commit is contained in:
571
RTX5_20220316/Driver/BC25/BC25.c
Normal file
571
RTX5_20220316/Driver/BC25/BC25.c
Normal 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)&×<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)&×<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");
|
||||
//}
|
||||
|
||||
|
||||
46
RTX5_20220316/Driver/BC25/BC25.h
Normal file
46
RTX5_20220316/Driver/BC25/BC25.h
Normal 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
|
||||
Reference in New Issue
Block a user