久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2975|回復: 3
收起左側

stm32藍牙小車程序分享

[復制鏈接]
ID:486777 發表于 2019-6-9 16:19 | 顯示全部樓層 |閱讀模式

HC05與開發板的連接線,使用杜邦線連接:

        HC05_TXD     <--->    PA3          //串口2接收引腳
        HC05_RXD      <--->     PA2            //串口2發送引腳
        HC05_KEY     <--->     PA5            //普通GPIO、輸出
        HC05_INT      <--->     PA7            //普通GPIO、輸入
        
        HC05_VCC    <--->     接5V或3.3V
        HC05_GND     <--->     接地線         
        


調試串口(TTL-USB TO USART):
CH340的收發引腳與STM32的發收引腳相連。
    RX<--->PA9
    TX<--->PA10

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "./usart/bsp_usart.h"
  3. #include "./usart/bsp_usart_blt.h"
  4. #include "./systick/bsp_SysTick.h"
  5. #include "./hc05/bsp_hc05.h"

  6. #include <string.h>
  7. #include <stdlib.h>

  8. #include "delay.h"
  9. #include "sys.h"
  10. #include "timer.h"

  11. unsigned int Task_Delay[NumOfTask];
  12. BLTDev bltDevList;
  13. char sendData[1024];
  14. char linebuff[1024];







  15. /**
  16.   * @brief  主函數
  17.   * @param  無
  18.   * @retval 無
  19.   */
  20. int main(void)
  21. {       


  22.         char* redata;
  23.         uint16_t len;
  24.         static uint8_t hc05_role=0;

  25.        

  26.        
  27.         delay_init();       
  28. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);       

  29.           //初始化systick
  30.         SysTick_Init();
  31.         SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;

  32.         USART_Config();

  33. HC05_INIT();
  34.         TIM3_PWM_Init(1999,719);
  35.        


  36.         while(1)
  37.         {



  38.                
  39.                
  40.                
  41.                 //搜索藍牙模塊,并進行連接
  42.                 if(Task_Delay[2]==0 && !IS_HC05_CONNECTED() )
  43.                 {
  44.                         if(hc05_role == 1)        //主模式
  45.                         {
  46.                                 HC05_INFO("正在掃描藍牙設備...");
  47.                                
  48.                                 linkHC05();
  49.                                
  50.                                 Task_Delay[2]=3000; //此值每1ms會減1,減到0才可以重新進來這里,所以執行的周期是3s

  51.                         }
  52.                         else        //從模式
  53.                         {
  54.                                         HC05_Send_CMD("AT+INQ\r\n",1);//模塊在查詢狀態,才能容易被其它設備搜索到
  55.                                         delay_ss(1000);
  56.                                         HC05_Send_CMD("AT+INQC\r\n",1);//中斷查詢,防止查詢的結果干擾串口透傳的接收

  57.                                         Task_Delay[2]=2000; //此值每1ms會減1,減到0才可以重新進來這里,所以執行的周期是2s

  58.                         }
  59.                        
  60.                 }       
  61.                
  62.                
  63.                
  64.                         //連接后每隔一段時間檢查接收緩沖區
  65.                 if(Task_Delay[0]==0 && IS_HC05_CONNECTED())  
  66.                 {
  67.                                 uint16_t linelen;

  68.                                 /*獲取數據*/
  69.                                 redata = get_rebuff(&len);
  70. //                        k=(int)redata;                                                       
  71. //                                printf ("k:\r\n%s",k);
  72.                                 linelen = get_line(linebuff,redata,len);

  73.                        
  74. //                                /*檢查數據是否有更新*/
  75.                                 if(linelen<200 && linelen != 0)
  76.                                 {
  77.                                        
  78.                                         if(strcmp(redata,"AT+LED1=ON")==0)
  79.                                         {
  80.                                                                                
  81.                                                 HC05_SendString("+LED1:ON\r\nOK\r\n");

  82.                                         }
  83.                                         else if(strcmp(redata,"AT+LED1=OFF")==0)
  84.                                         {
  85.                                                
  86.                                                 HC05_SendString("+LED1:OFF\r\nOK\r\n");

  87.                                         }
  88.                                         else
  89.                                         {
  90.                                                 HC05_INFO("receive:\r\n%s",redata);
  91.                                        
  92. if(strcmp(redata,"111")==0)
  93. {
  94.                
  95. }
  96.                                
  97. if(strcmp(redata,"000")==0)
  98. {
  99.        
  100. }
  101. if(strcmp(redata,"1")==0)
  102. {
  103.                 go_left_revolve1();
  104. }
  105. if(strcmp(redata,"2")==0)
  106. {
  107.                 go_straight1();
  108. }
  109. if(strcmp(redata,"3")==0)
  110. {
  111.               go_right_revolve1();
  112. }
  113. if(strcmp(redata,"4")==0)
  114. {
  115.                         go_left1();
  116. }
  117. if(strcmp(redata,"5")==0)
  118. {
  119.                                 go_stop();
  120. }
  121. if(strcmp(redata,"6")==0)
  122. {
  123.                                 go_right1();
  124. }
  125. if(strcmp(redata,"8")==0)
  126. {
  127.                         go_back();
  128. }                               
  129.                                        
  130.                                         }
  131.                                        
  132.                                         /*處理數據后,清空接收藍牙模塊數據的緩沖區*/
  133.                                        
  134.                                 clean_rebuff();       
  135.                                 }
  136.                         Task_Delay[0]=500;//此值每1ms會減1,減到0才可以重新進來這里,所以執行的周期是500ms
  137.                 }
  138.                
  139.                
  140.         }
  141. }

  142. /*********************************************END OF FILE**********************/
復制代碼

所有資料51hei提供下載:
藍牙小車.7z (201.43 KB, 下載次數: 84)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:632678 發表于 2019-11-14 23:52 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:632678 發表于 2019-11-17 22:46 | 顯示全部樓層
樓主 ,想問一下 usart1  usart2  處的波特率 哪一個是要hc05 匹配的呀  
(新手)
回復

使用道具 舉報

ID:486777 發表于 2020-5-8 17:08 | 顯示全部樓層
易冥想 發表于 2019-11-17 22:46
樓主 ,想問一下 usart1  usart2  處的波特率 哪一個是要hc05 匹配的呀  
(新手)

USart2是藍牙的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区在线播放 | 国产精品久久久久久久久图文区 | 九九热这里只有精品6 | 亚洲一区二区在线视频 | 久久99精品久久久久 | 国产一级淫片免费视频 | 精品日韩一区二区 | 在线欧美视频 | 激情欧美日韩一区二区 | 成人 在线 | 久草在线视频中文 | 欧美一级在线 | 久久国产综合 | 99热热精品 | 欧美一级免费观看 | 911网站大全在线观看 | 992人人草| 成人免费视频久久 | 亚洲免费视频一区 | 中文字幕一区二区三区乱码在线 | xx视频在线观看 | 久久久久久久久淑女av国产精品 | 一区二区三区四区国产精品 | 91精品国产综合久久久久久 | 黄一区二区三区 | 黄色av观看 | 91精品国产欧美一区二区成人 | 亚洲精彩免费视频 | 一级片在线免费播放 | 国产精品99久久久久久动医院 | 亚洲综合无码一区二区 | 国产成人久久精品一区二区三区 | 91视频电影 | 日韩a | 久草热播 | 四虎永久免费影院 | 91精品国产91久久久 | 91精品国产一区二区三区 | 九九热免费视频在线观看 | 欧美午夜在线 | 日韩精品一区二区三区视频播放 |