• 大小: 0M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 其他  

资源简介

BC35.rar

资源截图

代码片段和文件信息

#include “bc35.h“
//本程序只供学习使用,未经作者许可,不得用于其它任何用途    
//作者:余浩
//yh77530@163.com
//QQ:838625990
//创建日期:2019/6/6
u8   NB_ReceiveBuff[200];    //接收BUFF
u16  NB_ReceiveNum=0;        //接收BUFF标志
u8   Command_Mode = 0;       //命令模式  默认关
u8   UDPSocket = 0;          //UDPso
u8   NBok=0;


//获取第n个字符的位置
char NBget_Char_Position(u8 *istr u8 ichar u8 iposi)
{
  u8 posit=0;
u8 i;
for(i=0;*(istr+i) != ‘\0‘;i++)
{
  if(*(istr+i) == ichar) posit++;
if(posit == iposi)  return i;
}
return -1;
}



//取出BUFF里面的数据
//返回0无数据,返回>0有数据
u8 receive_UDP_msg(char *outstr)
{
  u8 ij=0;
  u8 pi;
if(NB_ReceiveNum & 0x4000)
{
  pi = NBget_Char_Position(NB_ReceiveBuff ‘‘ 2)+1;
  for(i=pi;(*(NB_ReceiveBuff+i)<=‘9‘&&*(NB_ReceiveBuff+i)>=‘0‘)||(*(NB_ReceiveBuff+i)<=‘F‘&&
               *(NB_ReceiveBuff+i)>=‘A‘)||(*(NB_ReceiveBuff+i)<=‘f‘&&*(NB_ReceiveBuff+i)>=‘a‘);i+=2 )
  {
*(outstr+j)=0;
    if(*(NB_ReceiveBuff+i)>=‘0‘ && *(NB_ReceiveBuff+i)<=‘9‘)         *(outstr+j) +=  (*(NB_ReceiveBuff+i)-‘0‘)*16;
else if(*(NB_ReceiveBuff+i)<=‘F‘&&*(NB_ReceiveBuff+i)>=‘A‘)      *(outstr+j) +=  (*(NB_ReceiveBuff+i)-‘A‘+10)*16;
else if(*(NB_ReceiveBuff+i)<=‘f‘&&*(NB_ReceiveBuff+i)>=‘a‘)      *(outstr+j) +=  (*(NB_ReceiveBuff+i)-‘a‘+10)*16;
    if(*(NB_ReceiveBuff+i+1)>=‘0‘ && *(NB_ReceiveBuff+i+1)<=‘9‘)     *(outstr+j) +=  (*(NB_ReceiveBuff+i+1)-‘0‘);
else if(*(NB_ReceiveBuff+i+1)<=‘F‘&&*(NB_ReceiveBuff+i+1)>=‘A‘)  *(outstr+j) +=  (*(NB_ReceiveBuff+i+1)-‘A‘+10);
else if(*(NB_ReceiveBuff+i+1)<=‘f‘&&*(NB_ReceiveBuff+i+1)>=‘a‘)  *(outstr+j) +=  (*(NB_ReceiveBuff+i+1)-‘a‘+10);
      j++;
}
*(outstr+j) = 0;  
NB_ReceiveNum=0;
return j;
}
else
  return 0;
}


//   例:15->F
char valueToHexCh(int value)
{
  char result = ‘\0‘;
if(value >= 0  && value <= 9)
{
  result = (char)(value+48);
}
else if(value>=10 && value<=15)
{
  result = (char)(value-10+65);
}
}
//
int StrToHex(char *chchar *hex)
{
int temp = 0;
while(*ch)
{
temp = (int)*ch;
*hex++ =  valueToHexCh(temp/16);
*hex++ =  valueToHexCh(temp%16);
 ch++;
}
*hex=‘\0‘;
}


//发送数据函数,传入socket主机IP,远程主机端口,数据长度,数据
//这里暂时使用字符串参数
//返回值0,发送成功(鉴于UDP为报文传输,数据主机是否接收到模块是无法确认的)
//返回值1,发送失败
uint8_t send_UDP_msg(char *hostIPchar *portchar *data)
{
char ptr[200]=“AT+NSOST=“;
char sockstr[2];
char dataLen[3];
char DATA[150];
u8 datal;

sprintf(sockstr“%d“UDPSocket);
datal = strlen(data);
sprintf(dataLen“%d“datal); 
StrToHex(dataDATA);

strcat(ptrsockstr);
strcat(ptr““);
strcat(ptrhostIP);
strcat(ptr““);
strcat(ptrport);
strcat(ptr““);
strcat(ptrdataLen);
strcat(ptr““);
strcat(ptrDATA);
strcat(ptr“\0“);
if(!BC95_send_cmd(ptr“OK“0))
{
return 0;
}
return 1;
}


//创建UDP链接,传入本地UDP端口号,成功返回0-6的socket id号,失败返回1
u8 creat_UDP_socket(char* local_port)
{
u8 i;
char data[10]=““;
char temp[64]=“AT+NSOCR=DGRAM17“;
strcat(templocal

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8944  2019-07-31 17:22  BC35\bc35.c

     文件        679  2019-07-26 20:50  BC35\bc35.h

     目录          0  2019-07-31 17:22  BC35

----------- ---------  ---------- -----  ----

                 9623                    3


评论

共有 条评论