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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3688|回復: 1
打印 上一主題 下一主題
收起左側

STM32F4XX的HC-SR04超聲波測距源碼

[復制鏈接]
跳轉到指定樓層
樓主
STM32F4系列的超超聲波測距,型號HC-SR04,通過超聲波模塊可正常獲取距離,再進行二次開發

單片機源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "string.h"
  3. #include "stdio.h"
  4. #include "stdlib.h"
  5. #include "delay.h"
  6. #include "sys.h"
  7. #include "beep.h"
  8. #include "key.h"
  9. #include "led.h"
  10. #include "hc_sr04.h"
  11. #include "init_usart.h"
  12. #include "bsp_ili9341_lcd.h"

  13. //#include "w25qxx.h"
  14. //#include "sdio_sdcard.h"
  15. //#include "lcd.h"
  16. //#include "malloc.h"
  17. //#include "spi.h"


  18. char buf[400] = {0};//WiFi設置接收字符串
  19. volatile uint32_t flag_buf = 0;//判斷串口傳數據是否傳完
  20. volatile uint32_t send_flag = 0;//WiFi設置命令標志位 (暫存)
  21. char rx_buf[200] = {0};//WiFi設置命令字符串
  22. uint32_t i = 0;//返回字符串計數
  23. char edit_buf[20] = {0};//接受設置是時的字符數據

  24. u32 FLASH_SIZE;

  25. //串口3發送字符串:發給wifi
  26. void wifi_set(char *pstr)
  27. {
  28.         //判斷當 前是否為NULL指針
  29.         //字符串是以'\0'(0值為結尾)
  30.         uint32_t i = 0;
  31.        
  32.         while(pstr && *pstr)
  33.         {
  34.                 rx_buf[i] = *pstr;
  35.                 i++;
  36.                 USART_SendData(USART3,*pstr++);
  37.                 while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);  
  38.         }

  39.         send_flag = 1;
  40. }




  41. uint64_t wifi_all_set(uint64_t flag_buf)
  42. {
  43.         if(flag_buf)
  44.                 {       
  45.                         printf("run here1\r\n");
  46.                         if(strstr(rx_buf,"AT+CWMODE=2") != NULL && strstr(buf,"OK") != NULL)
  47.                         {
  48.                                 wifi_set("AT+RST\r\n");//重啟是設置生效       
  49.                                 delay_ms(666);
  50.                                 delay_ms(666);
  51.                                 delay_ms(666);
  52.                                 delay_ms(666);
  53.                                 //wifi_set("AT+CWSAP="TEST","123456123456",1,3");//設置wifi為多連接模式  
  54.                                
  55.                                 wifi_set("AT+CIPMUX=1\r\n");//設置wifi為多連接模式
  56.                                 delay_ms(666);
  57.                                 delay_ms(666);
  58.                                 delay_ms(666);
  59.                                 wifi_set("AT+CIPSERVER=1,6666\r\n");//設置為服務器,端口號為6666
  60.                                 delay_ms(666);
  61.                                 delay_ms(666);
  62.                                 delay_ms(666);
  63.                                 wifi_set("AT+CIPSTO=6000\r\n");//設置超時時間
  64.                                 delay_ms(666);
  65.                                 delay_ms(666);
  66.                                 delay_ms(666);
  67.                         }
  68.                 }
  69.                 else
  70.                         return 1;
  71.                
  72.                 flag_buf = 0;
  73.                 delay_ms(666);
  74.                 delay_ms(666);
  75.                 delay_ms(666);

  76.         return 0;
  77. }





  78. //int main(void)
  79. //{
  80. //        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 中斷優先級分組管理
  81. //       
  82. //        Systick_Init();//延時初始化時鐘
  83. //        usart_init(115200);//串口1初始化
  84. //        USART3_Init(115200);//串口3初始化
  85. //        KEY_Init();
  86. //        key_init1();
  87. //        LED_Init();
  88. //        exit_init();
  89. //        Beep_init();
  90. //        printf("run here\r\n");
  91. //
  92. //        wifi_set("AT+CWMODE=2\r\n");//設置wifi為模式3,sta與AP共存
  93. //        delay_ms(666);
  94. //        wifi_all_set(flag_buf);//進入中斷函數后,當串口3接收完數據,flag_buf = 1       
  95. //     
  96. //                       
  97. //        //delay_ms(666);
  98. //        //delay_ms(666);
  99. //        //delay_ms(666);
  100. //        //delay_ms(666);
  101. //       
  102. //                while(1)
  103. //                {
  104. //                        if(PEin(3) == 0)//KEY1
  105. //                        {
  106. //                                PAout(6) = 0;//LED2       
  107. //                                delay_ms(500);
  108. //                                PAout(6) = 1;//LED2       
  109. //                               
  110. //                                PBout(0) = 1;
  111. //                                delay_ms(500);
  112. //
  113. //                                printf("=====\r\n");
  114. //                        }       
  115. //                        delay_ms(500);
  116. //                        printf("=====1111\r\n");
  117. //                }
  118. //        //return 0;
  119. //}


  120. void USART1_IRQHandler(void)                                                //串口1中斷服務程序
  121. {
  122.         uint8_t d;
  123.         if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)          //接收中斷
  124.         {
  125.                 //接收數據
  126.                 d = USART_ReceiveData(USART1);        //讀一個發一個                                       
  127.                
  128.                 USART_SendData(USART3,d);
  129.         }

  130. }



  131. void USART3_IRQHandler(void)                                                //串口3中斷服務程序
  132. {
  133.         uint8_t d;
  134.        
  135.         if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)          //接收中斷
  136.         {
  137.                 //接收數據
  138.                 d = USART_ReceiveData(USART3);
  139.                
  140.                        
  141.                 buf[i++] = d;
  142.                 if(buf[i-2] == 0x0D && buf[i-1] == 0x0A)//判斷字符串是否接收完畢
  143.                 {
  144.                         i = 0;
  145.                         flag_buf = 1;
  146.                        
  147.                 }
  148.                 if(i >= 300)//判斷字符串是否是自己需要的
  149.                 {
  150.                         i = 0;
  151.                         memset(buf,0,sizeof(buf));
  152.                 }
  153.                 //printf("%d = s\r\n",d);
  154.                 //轉發給PC顯示
  155.                 USART_SendData(USART1,d);
  156.                
  157.                 while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);               
  158.         }        
  159. }

  160. int main(void)
  161. {        
  162.         int n;
  163.        
  164.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
  165.        
  166.         Systick_Init();//延時延時函數
  167.         usart_init(115200);//串口1初始化       
  168.         USART3_Init(115200);//串口3初始化       
  169.         KEY_Init();                //初始化串口波特率為115200
  170.         key_init1();                                        //初始化LED  
  171.         //LED_Init();                         //LCD初始化  
  172.         exit_init();                         //按鍵初始化  
  173.        
  174.         init_sr04();



  175.         printf("1234r\n");
  176.        
  177.         while(1)
  178.         {
  179.                 printf("F====\r\n");
  180.                 n = get_sr04_distance()/10;
  181.                 //printf("HGFHGHGFHFHGGF====\r\n");
  182.                 printf("distace = %d cm\r\n",n);
  183.                 delay_s(1);
  184.         }

  185. }
復制代碼

所有資料51hei提供下載:
sr04.rar (101.94 KB, 下載次數: 69)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:315667 發表于 2018-4-25 15:56 | 只看該作者
下載鏈接失效了,可以再發一次嗎 謝謝!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产1区2区在线观看 | 欧美一区二区在线播放 | 欧美成人精品激情在线观看 | 色.com| 国产男女视频 | 亚洲国产成人在线视频 | 精品国产精品国产偷麻豆 | 久久久观看 | 在线观看你懂的网站 | 亚洲综合无码一区二区 | 日韩成人专区 | www.成人久久 | 999久久久免费精品国产 | 日本手机看片 | 欧美日韩一区二区在线观看 | 美女视频h| 国产一级片免费视频 | 一区二区三区精品视频 | 欧美综合久久 | 国产一区二区免费 | 酒色成人网 | 99精品一区二区三区 | 亚洲精品欧美一区二区三区 | 亚洲精品在线国产 | 国产精品一区二区不卡 | www.中文字幕.com | 欧美一区二区三区在线播放 | 91佛爷在线观看 | 黄色av大片 | 精品国产一区二区三区久久久久久 | 一级片免费视频 | 天天干视频 | 欧美国产免费 | 天天爱天天操 | 欧产日产国产精品视频 | 国产在线小视频 | 成人在线 | 日韩视频在线免费观看 | 天天干视频 | 97色在线观看免费视频 | 免费av手机在线观看 |