代码分为NB模组,串口调试,串口接NB
NB.c
#include "bc260y.h"
#include "string.h"
#include "usart.h"
#include "wdg.h"
#include "led.h"
char *strx,*extstrx;
extern unsigned char RxBuffer[255],RxCounter;
BC260Y BC260Y_Status;
#define ProductKey "a1SZ2mtWIur" //产品KEY
#define DeviceName "m001" //
#define DeviceSecret "9dc54467d48a50867dd3a089ef078224" //
#define PubTopic "/sys/a1SZ2mtWIur/m001/thing/event/property/post"//发布主题
#define SubTopic "/sys/a1NXoxeFw4c/mzh002/thing/service/property/set"//订阅主题
void Clear_Buffer(void)//清空缓存
{
u8 i;
Uart1_SendStr((char*)RxBuffer);
for(i=0;i<255;i++)
RxBuffer[i]=0;//缓存
RxCounter=0;
IWDG_Feed();//喂狗
}
void BC260Y_Init(void)
{
printf("AT\r\n");
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK
Clear_Buffer();
while(strx==NULL)
{
Clear_Buffer();
printf("AT\r\n");
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK
}
printf("AT+QMTDISC=0\r\n");
delay_ms(300);
printf("AT+CFUN=1\r\n");//获取卡号,判断是否存在卡
delay_ms(300);
printf("AT+CIMI\r\n");//获取卡号,判断是否存在卡
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"460");//返回460,表明识别到卡了
Clear_Buffer();
while(strx==NULL)
{
Clear_Buffer();
printf("AT+CIMI\r\n");//获取卡号,判断是否存在卡
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"460");//返回OK,说明卡是存在的
}
printf("AT+CGATT=1\r\n");//激活网络PDP
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK
Clear_Buffer();
printf("AT+CGATT?\r\n");//查询激活状态
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1");//返回1
Clear_Buffer();
while(strx==NULL)
{
Clear_Buffer();
printf("AT+CGATT?\r\n");//获取激活状态
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1");//返回1,表明注网成功
}
printf("AT+CSQ\r\n");//查看获取CSQ值
delay_ms(300);
Clear_Buffer();
}
void BC260Y_ConTCP(void)
{
printf("AT+QICLOSE=0\r\n");//关闭socket连接
delay_ms(300);
Clear_Buffer();
IWDG_Feed();//喂狗
}
void BC260Y_CreateTCPSokcet(void)//创建socket
{
printf("AT+QIOPEN=1,0,\"TCP\",\"47.99.80.89\",14269,1234,1\r\n");//创建连接TCP,输入IP以及服务器端口号码,采用直接吐出的方式
delay_ms(300);
strx=strstr((const char*)RxBuffer,(const char*)"+QIOPEN: 0,0");//检查四否登录成功
while(strx==NULL)
{
strx=strstr((const char*)RxBuffer,(const char*)"+QIOPEN: 0,0&