BT AT Command Learing

Dependencies:   mbed

Fork of Nucleo_sim808_BT by sheng xiaolin

Files at this revision

API Documentation at this revision

Comitter:
shawlinrise
Date:
Fri Jun 23 03:32:07 2017 +0000
Commit message:
BT AT Command Learing

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jun 23 03:32:07 2017 +0000
@@ -0,0 +1,167 @@
+#include "mbed.h"
+#include "string.h"
+
+Serial pc(SERIAL_TX, SERIAL_RX);
+Serial sim808(D1,D0);
+Timer  send_t;
+
+#define buf_max 200
+volatile int First_Int = 0;
+volatile int Rcv_End = 0;
+char sim_buf[buf_max];
+char *p1,*p2;
+const char *senddata="Bluetooth test\r\n";
+
+void CLR_Buf(void);
+int Find(char *a);
+//void Wait_CREG(void);
+
+void SIM808_IRQHandler(void)                    
+{    
+    sim_buf[First_Int++] = sim808.getc();
+    if(sim_buf[First_Int] == 0X0A) 
+    {
+      Rcv_End = 1;
+    } 
+} 
+
+int main()
+{
+    sim808.attach(&SIM808_IRQHandler);
+    pc.printf("SIM808 BlueTooth Test!\r\n");
+    pc.printf("Çë´ò¿ªÊÖ»úÀ¶ÑÀ´®¿ÚÖúÊÖ!\r\n");
+    pc.printf("SIM808Ä£¿éÁ¬½ÓÖÐ...\r\n");
+    
+    sim808.printf("AT+BTPOWER=1\r\n");//¿ªÆôÀ¶ÑÀµçÔ´
+    wait(0.1);
+    sim808.printf("AT+BTUNPAIR=0\r\n");//ɾ³ýÅä¶ÔµÄÀ¶ÑÀÉèÖÃ
+    pc.printf("SIM808Ä£¿é¿ªÊ¼ÊÕË÷À¶ÑÀÉ豸,ÇëÈ·ÈÏÊÖ»úÀ¶ÑÀ´¦Óڿɱ»·¢ÏÖ\r\n");
+    
+    CLR_Buf();
+    Rcv_End = 0;
+    
+    do
+    {
+        pc.printf("ÊÕË÷É豸ÖÐ............\r\n");
+        sim808.printf("AT+BTSCAN=1,10\r\n");   //ÊÕË÷¸½½üµÄÀ¶ÑÀÉ豸£¬ÊÕË÷ʱ¼ä10S
+    }while(Rcv_End == 1 && strstr((const char*)sim_buf,"+BTSCAN: 0")==NULL);   //µÈ´ýÊÕË÷µ½É豸²ÅÍ˳ö
+    
+    CLR_Buf();
+    Rcv_End = 0;
+    
+    do
+    {
+        pc.printf("Á¬½ÓÉ豸ÖÐ............\r\n");
+        sim808.printf("AT+BTPAIR=0,1\r\n");//Á¬½ÓµÚÒ»¸öÊÕË÷µ½µÄÉ豸 
+        wait(0.2); 
+        sim808.printf("AT+BTPAIR=1,1\r\n");//ÏìÓ¦Á¬½Ó
+        wait(0.1);//µÈ´ý½ÓÊÕÊý¾ÝÍê³É
+    }while(Rcv_End == 1 && strstr((const char*)sim_buf,"+BTPAIR: 1")==NULL);//Æ¥Åä³É¹¦
+    
+    CLR_Buf();
+    Rcv_End = 0;
+    
+    pc.printf("SIM808Ä£¿éÀ¶ÑÀÆ¥Åä³É¹¦\r\n");
+    pc.printf("Çë´ò¿ªÊÖ»úÀ¶ÑÀ´®¿ÚÖúÊÖ\r\n");
+    
+    sim808.printf("AT+BTGETPROF=1\r\n");//»ñÈ¡À¶ÑÀ·þÎñÁбí
+    sim808.printf("AT+BTCONNECT=1,4\r\n");//»ñÈ¡À¶ÑÀ·þÎñÁбí
+    pc.printf("SIM808Ä£¿éÀ¶ÑÀ½¨Á¢SPP·þÎñ³É¹¦\r\n");
+    
+    CLR_Buf();
+    Rcv_End = 0;
+    
+    send_t.start();
+    while(1);
+    {
+        if(send_t.read()>5)
+        {
+            sim808.printf("AT+BTSPPSEND\r\n");
+            sim808.printf((char *)senddata);
+            send_t.start();
+            CLR_Buf();
+        }
+    }
+}
+
+
+
+
+void CLR_Buf(void)
+{
+    uint16_t k;
+    for(k=0;k<buf_max;k++)      //½«»º´æÄÚÈÝÇåÁã
+    {
+        sim_buf[k] = 0x00;
+    }
+    First_Int = 0;              //½ÓÊÕ×Ö·û´®µÄÆðʼ´æ´¢Î»ÖÃ
+}
+
+int Find(char *a)
+{ 
+  if(strstr(sim_buf,a)!=NULL)
+        return 1;
+    else
+            return 0;
+}
+
+//void Wait_CREG(void)
+//{
+//  int i;
+//  int k;
+//  i = 0;
+//  CLR_Buf();
+//  while(i == 0)                   
+//  {
+//      CLR_Buf();        
+//      sim808.printf("AT+CREG?");
+//      sim808.printf("\r\n");
+//      wait(1);        
+//      for(k=0;k<buf_max;k++)                  
+//      {
+//          if(sim_buf[k] == ':')
+//          {
+//              if((sim_buf[k+4] == '1')||(sim_buf[k+4] == '5'))
+//              {
+//                  i = 1;
+//                break;
+//              }
+//          }
+//      }
+//      pc.printf("×¢²áÖÐ.....\r\n");
+//  }
+//}
+
+//void Second_AT_Command(char *b,char *a,u8 wait_time)         
+//{
+//  uint8_t i;
+//  char *c;
+//  c = b;                                      //±£´æ×Ö·û´®µØÖ·µ½c
+//  CLR_Buf2(); 
+//  i = 0;
+//  while(i == 0)                    
+//  {
+//      if(!Find(a)) 
+//      {
+//          if(Timer0_start == 0)
+//          {
+//              b = c;                          //½«×Ö·û´®µØÖ·¸øb
+//              for (; *b!='\0';b++)
+//              {
+//                  while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==RESET);
+//                  USART_SendData(USART2,*b);//UART2_SendData(*b);
+//              }
+//              UART2_SendLR(); 
+//              Times = 0;
+//              shijian = wait_time;
+//              Timer0_start = 1;
+//         }
+//    }
+//    else
+//      {
+//          i = 1;
+//          Timer0_start = 0;
+//      }
+//  }
+//  CLR_Buf2(); 
+//}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Jun 23 03:32:07 2017 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed/builds/64910690c574
\ No newline at end of file