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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32+HC-SR04源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:421049 發表于 2019-7-27 01:08 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
利用定時器3產生pwm波,使能超聲波模塊。利用定時器4計時,計算出時間。

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "oled.h"
  6. #include "SR04.h"
  7. #include "usart.h"          

  8. /************************************************
  9. 時間:2019.7.25
  10. 作者:菜雞
  11.       利用定時器TIM3的PWM輸出得到觸發信號
  12.           TIM4用于計算回響電平輸出時間
  13. ************************************************/
  14.        
  15. void Count(void);
  16. uint32_t Distance;
  17. uint16_t Time;
  18. uint8_t ShowData[5]={0,0,0,0,0};

  19. int main(void)
  20. {       
  21.         delay_init();                     //延時函數初始化          
  22.         LED_Init();                             //LED端口初始化
  23.         OLED_Init();                        //初始化OLED      
  24.     Uitr_GPIO_Config();
  25.          OLED_ShowString(0,0,"now:",24);
  26.         OLED_ShowString(50,0,"unknow",24);
  27.     OLED_ShowString(0,24,"distance:",16);
  28.          OLED_ShowString(53,40,"mm",24);
  29.         OLED_Refresh_Gram();                //更新顯示到OLED
  30.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  31.         TIM3_PWM_Init(999,7199);         //不分頻。PWM頻率=72000000/900=80Khz
  32.         TIM4_Config();
  33.         while(1)
  34.         {       
  35.         TIM_SetCompare2(TIM3,1);               
  36.                 while(ECHO_IN != 1);
  37.                 TIM_Cmd(TIM4,ENABLE);                                                  //計數器開始計數
  38.                 while(ECHO_IN == 1);
  39.                 TIM_Cmd(TIM4,DISABLE);                                                  //計數器停止計數
  40.                 Count();
  41.         }          
  42.        
  43. }

  44. void Count(void)
  45. {
  46.         Time = TIM4->CNT;                                                                  //讀計數器值
  47.         TIM4->CNT = 0;                                                                          //清除計數器
  48.         if(Time>23530)                                                                          //判斷是否在4M范圍,超出顯示ERRO
  49.         {
  50.                 OLED_ShowString(50,0,"failed",24);
  51.                 OLED_Refresh_Gram();                //更新顯示到OLED
  52.         }
  53.         else
  54.         {
  55.                 Distance = (uint32_t)(Time*340/2/1000) ;          //計算出來的是MM               
  56.                 ShowData[0]        = (Distance%10000/1000)+'0';
  57.                 ShowData[1]        = (Distance%1000/100)+'0';
  58.                 ShowData[2]        = (Distance%100/10)+'0';
  59.                 ShowData[3]        = (Distance%10/1)+'0';
  60.                 OLED_ShowString(50,0,"normal",24);
  61.                 OLED_ShowString(0,40,ShowData,24);  
  62.                 OLED_Refresh_Gram();                //更新顯示到OLED
  63.         }
  64.        
  65. }


復制代碼

所有資料51hei提供下載:
HC-SR04超聲波測距.7z (197.2 KB, 下載次數: 60)



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 999www视频免费观看 | 欧美日韩精品在线免费观看 | 亚洲一区二区三区免费视频 | 国产精品欧美一区二区三区 | 国产成人精品一区二 | 成人免费片| 成人国产一区二区三区精品麻豆 | 国产粉嫩尤物极品99综合精品 | 精品一二区 | 国产精品国产精品国产专区不蜜 | 欧产日产国产精品视频 | av在线成人| 国产一在线 | 国产91在线播放 | 欧美日韩亚洲国产综合 | 亚洲一区中文字幕 | 国产情品| 99久久亚洲| 亚洲视频在线一区 | 日本视频在线 | 日韩高清国产一区在线 | 婷婷久久五月 | 欧美日韩视频网站 | 国产日韩欧美一区 | 精品一区二区三区在线观看 | 精品久久伊人 | 中文在线一区二区 | 精品国产乱码久久久久久蜜柚 | 日韩欧美中文 | 干干天天| 国产成人精品一区二区 | av一级久久 | 久久精品成人 | 成人综合伊人 | 欧美一级片 | 色综合中文 | 日韩国产精品一区二区三区 | 亚洲欧美综合精品久久成人 | 日本黄视频在线观看 | 狠狠躁夜夜躁人人爽天天高潮 | 伊人av在线播放 |