ESP32蓝牙接收并截取指定格式的字符串

ESP32蓝牙接收并截取指定格式的字符串

/*

字符串格式:
[wifi_zhanghao,wifi_mima]

*/


typedef unsigned char u8;

#include "BluetoothSerial.h"
#include <string.h>
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;

char receive_data[40],WIFI_ZH[20],WIFI_MM[20];

/*蓝牙检测数据*/
void LanYa_scan(void){
  u8 shuju_flag=0,num=0, i=1,j=0,shuju=0,JL_sj=0;
  char Data;
    while(SerialBT.available()){
      Data=SerialBT.read();
        if (Data=='[') {    //帧头,此时接收到有效数据
            shuju_flag=1,num=0;
            memset(receive_data, 0, sizeof(receive_data));   //清零接受数据数组
            memset(WIFI_ZH, 0, sizeof(WIFI_ZH));   //清零接受数据数组
            memset(WIFI_MM, 0, sizeof(WIFI_MM));   //清零接受数据数组     
        }
        if(Data==']')     //帧尾
        {
          shuju=1;           //表示接收了完整的自定义字符串
            shuju_flag=0;
        }
        if(shuju_flag==1)
        {
            receive_data[num]=Data;
            num++;
        }  
    }
    if(shuju==1){
                Serial.println("WIFI_ZH:");
            for(i=1;i<num;i++){
              if(receive_data[i] == ','){
                  JL_sj=1;
                  Serial.println();
                  Serial.println("WIFI_MM:");
              }          
              if(JL_sj==0){
                WIFI_ZH[i-1]=receive_data[i];
                Serial.print(WIFI_ZH[i-1]);
              }
              if(JL_sj==1){
                  if(i<num-1){                  
                    WIFI_MM[i-j]=receive_data[i+1];
                    Serial.print(WIFI_MM[i-j]);
                  }
              } 
              if(i==num-1){
                  JL_sj=0;
              }                       
          } 
          shuju=0;
          Serial.println();
    }




}


void setup() {
  Serial.begin(115200);
  SerialBT.begin("ESP32test"); //蓝牙模块名称
  Serial.println("蓝牙已启动,你可以配对了!");
}

void loop(){
LanYa_scan();
delay(10);

}

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值