找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2123|回復: 1
打印 上一主題 下一主題
收起左側

新手學stm32,做一個超聲波測距源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:423106 發(fā)表于 2019-10-29 10:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學完原子的輸入捕獲課件,突發(fā)奇想做個超聲波測距玩下就做了這個。PA1接trig,PAO接echo。

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "timer.h"

  6. //輸入捕獲 實驗  
  7. //改成超聲波測速模塊的實驗引腳對應如下
  8. //trig    PA(1)
  9. //Echo(回響信號)    PA(0)及TIM5ch1通道

  10. extern u8  TIM5CH1_CAPTURE_STA;                //輸入捕獲狀態(tài)                                                   
  11. extern u16        TIM5CH1_CAPTURE_VAL;        //輸入捕獲值
  12. int main(void)
  13. {                               
  14.   float distance;       
  15.         u32 temp=0;         
  16.         Stm32_Clock_Init(9);        //系統(tǒng)時鐘設置
  17.         uart_init(72,115200);        //串口初始化為115200
  18.         delay_init(72);                            //延時初始化
  19.         LED_Init();                                  //初始化與LED連接的硬件接口
  20.   TIM3_PWM_Init(899,0);        //不分頻。PWM頻率=72000/(899+1)=80Khz
  21.         TIM5_Cap_Init(0XFFFF,72-1);        //以1Mhz的頻率計數(shù)
  22.         PAout(1)=1;
  23.         delay_ms(50);
  24.         PAout(1)=0;
  25.            while(1)
  26.         {
  27.                
  28.                 delay_ms(10);
  29.                 trip();
  30.                 LED0_PWM_VAL++;
  31.                 if(LED0_PWM_VAL==300)LED0_PWM_VAL=0;                          
  32.                 if(TIM5CH1_CAPTURE_STA&0X80)//成功捕獲到了一次高電平
  33.                 {
  34.                         temp=TIM5CH1_CAPTURE_STA&0X3F;
  35.                         temp*=65536;                                        //溢出時間總和
  36.                         temp+=TIM5CH1_CAPTURE_VAL;                //得到總的高電平時間
  37.                         distance=temp*0.0001*340/2;
  38.                         printf("distance=%f cm\r\n",distance);        //打印總的高點平時間
  39.                         TIM5CH1_CAPTURE_STA=0;                        //開啟下一次捕獲
  40.                 }
  41.         }
  42. }
復制代碼

所有資料51hei提供下載:
超聲波測距模塊 HC-SR04.7z (93.48 KB, 下載次數(shù): 41)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:641608 發(fā)表于 2019-11-23 19:44 來自觸屏版 | 只看該作者
謝謝提供
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表