sheng xiaolin
/
Nucleo_sim808_BlueTooth
BT AT Command Learing
Fork of Nucleo_sim808_BT by
Revision 1:9e30224e0773, committed 2017-07-03
- Comitter:
- shawlinrise
- Date:
- Mon Jul 03 00:26:26 2017 +0000
- Parent:
- 0:a3b9a955988e
- Commit message:
- BT Connect
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r a3b9a955988e -r 9e30224e0773 main.cpp --- a/main.cpp Fri Jun 23 03:32:07 2017 +0000 +++ b/main.cpp Mon Jul 03 00:26:26 2017 +0000 @@ -9,12 +9,12 @@ 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"; +char CtrlZ = 0x1A; void CLR_Buf(void); int Find(char *a); -//void Wait_CREG(void); +void Wait_Connect(void); void SIM808_IRQHandler(void) { @@ -30,7 +30,6 @@ 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); @@ -43,44 +42,57 @@ 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); //µÈ´ýÊÕË÷µ½É豸²ÅÍ˳ö + sim808.printf("AT+BTSCAN=1,10\r\n"); //ÊÕË÷¸½½üµÄÀ¶ÑÀÉ豸£¬ÊÕË÷ʱ¼ä10S + wait(10); + }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");//Á¬½ÓµÚÒ»¸öÊÕË÷µ½µÄÉ豸 + 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);//Æ¥Åä³É¹¦ + 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; + pc.printf("SIM808Ä£¿éÀ¶ÑÀÅä¶Ô³É¹¦!\r\n"); + wait(1); + pc.printf("Çë´ò¿ªÀ¶ÑÀÖúÊÖÁ¬½ÓSIM808!\r\n"); + wait(1); - send_t.start(); - while(1); + Wait_Connect(); + sim808.printf("AT+ACPT=1\r\n"); + wait(1); + if(Find("OK")|Rcv_End == 1) { - if(send_t.read()>5) + pc.printf("É豸Á¬½Ó³É¹¦!\r\n"); + + CLR_Buf(); + Rcv_End = 0; + + send_t.start(); + while(1); { - sim808.printf("AT+BTSPPSEND\r\n"); - sim808.printf((char *)senddata); - send_t.start(); - CLR_Buf(); + if(send_t.read()>5) + { + sim808.printf("AT+BTSPPSEND\r\n"); + wait(0.1); + sim808.printf((char *)senddata); + sim808.printf("%c",CtrlZ); + send_t.start(); + CLR_Buf(); + } } + } + else + { + pc.printf("É豸Á¬½Óʧ°Ü!\r\n"); } } @@ -105,63 +117,21 @@ 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 +void Wait_Connect(void) +{ + int i; + i = 0; + CLR_Buf(); + while(i == 0) + { + CLR_Buf(); + wait(1); + if(Find("+BTCONNECTING:")) + { + i = 1; + break; + } + + pc.printf("ÇëÔÚÀ¶ÑÀÖúÊÖÖÐÁ¬½ÓÉ豸!\r\n"); + } +} \ No newline at end of file