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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3700|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STM32F4XX的HC-SR04超聲波測(cè)距源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
STM32F4系列的超超聲波測(cè)距,型號(hào)HC-SR04,通過超聲波模塊可正常獲取距離,再進(jìn)行二次開發(fā)

單片機(jī)源程序如下:
  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設(shè)置接收字符串
  19. volatile uint32_t flag_buf = 0;//判斷串口傳數(shù)據(jù)是否傳完
  20. volatile uint32_t send_flag = 0;//WiFi設(shè)置命令標(biāo)志位 (暫存)
  21. char rx_buf[200] = {0};//WiFi設(shè)置命令字符串
  22. uint32_t i = 0;//返回字符串計(jì)數(shù)
  23. char edit_buf[20] = {0};//接受設(shè)置是時(shí)的字符數(shù)據(jù)

  24. u32 FLASH_SIZE;

  25. //串口3發(fā)送字符串:發(fā)給wifi
  26. void wifi_set(char *pstr)
  27. {
  28.         //判斷當(dāng) 前是否為NULL指針
  29.         //字符串是以'\0'(0值為結(jié)尾)
  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");//重啟是設(shè)置生效       
  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");//設(shè)置wifi為多連接模式  
  54.                                
  55.                                 wifi_set("AT+CIPMUX=1\r\n");//設(shè)置wifi為多連接模式
  56.                                 delay_ms(666);
  57.                                 delay_ms(666);
  58.                                 delay_ms(666);
  59.                                 wifi_set("AT+CIPSERVER=1,6666\r\n");//設(shè)置為服務(wù)器,端口號(hào)為6666
  60.                                 delay_ms(666);
  61.                                 delay_ms(666);
  62.                                 delay_ms(666);
  63.                                 wifi_set("AT+CIPSTO=6000\r\n");//設(shè)置超時(shí)時(shí)間
  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); // 中斷優(yōu)先級(jí)分組管理
  81. //       
  82. //        Systick_Init();//延時(shí)初始化時(shí)鐘
  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");//設(shè)置wifi為模式3,sta與AP共存
  93. //        delay_ms(666);
  94. //        wifi_all_set(flag_buf);//進(jìn)入中斷函數(shù)后,當(dāng)串口3接收完數(shù)據(jù),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中斷服務(wù)程序
  121. {
  122.         uint8_t d;
  123.         if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)          //接收中斷
  124.         {
  125.                 //接收數(shù)據(jù)
  126.                 d = USART_ReceiveData(USART1);        //讀一個(gè)發(fā)一個(gè)                                       
  127.                
  128.                 USART_SendData(USART3,d);
  129.         }

  130. }



  131. void USART3_IRQHandler(void)                                                //串口3中斷服務(wù)程序
  132. {
  133.         uint8_t d;
  134.        
  135.         if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)          //接收中斷
  136.         {
  137.                 //接收數(shù)據(jù)
  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.                 //轉(zhuǎn)發(fā)給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);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
  165.        
  166.         Systick_Init();//延時(shí)延時(shí)函數(shù)
  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. }
復(fù)制代碼

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


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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品毛片在线观看 | 日韩一区二区在线观看视频 | 国产成人精品免费视频大全最热 | 亚洲欧美少妇 | 国产日韩欧美在线观看 | 欧美一区2区三区3区公司 | 四虎影院欧美 | 国产精品 亚洲一区 | 黄色网址大全在线观看 | 黄色成人国产 | 日韩在线播放第一页 | 精品自拍视频 | 亚洲国产精品久久久 | 9191在线观看 | 日韩午夜激情 | 三级av免费 | 天堂在线91 | 日韩中文字幕一区二区三区 | 日本天天操 | 国产精品久久国产精品 | 亚洲一区欧美一区 | 老牛影视av一区二区在线观看 | 免费看黄色视屏 | 久久精品欧美一区二区三区不卡 | 日韩在线免费观看视频 | 99精彩视频 | 日本在线视频不卡 | 国产aⅴ | 欧美成人第一页 | 丝袜美腿一区二区三区动态图 | 精品久久久久久久人人人人传媒 | 欧美精选一区二区 | 精品国产乱码久久久久久88av | 欧美日韩在线一区二区 | 国产精品国产a级 | 欧美片网站免费 | 欧美一级欧美三级在线观看 | 特黄小视频 | 亚洲电影一区 | 神马影院一区二区三区 | 北条麻妃国产九九九精品小说 |