找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2977|回復: 2
收起左側

STM32F4超聲波測距程序

[復制鏈接]
ID:632323 發(fā)表于 2019-11-19 17:56 | 顯示全部樓層 |閱讀模式
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "timer.h"
  5. #include "lcd.h"


  6. extern u8  TIM5CH1_CAPTURE_STA;                //輸入捕獲狀態(tài)                                                   
  7. extern u32        TIM5CH1_CAPTURE_VAL;        //輸入捕獲值  
  8.   
  9.        
  10. //超聲波函數(shù)引腳初始化
  11.        
  12.         void ChaoShengBo_Init(void)
  13. {             
  14.   GPIO_InitTypeDef  GPIO_InitStructure;

  15.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF時鐘

  16.   //GPIOF9,F10初始化設置
  17.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  18.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通輸出模式
  19.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出
  20.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  21.   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  22.   GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化
  23.        
  24.         GPIO_ResetBits(GPIOF,GPIO_Pin_10);//GPIOF9,F10設置高,燈滅

  25. }
  26.        
  27.        
  28.        
  29.        
  30.        
  31.        
  32. int main(void)
  33. {
  34.         u8 key;           //保存鍵值
  35.         long long High_TIME=0,distance=0;  
  36.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統(tǒng)中斷優(yōu)先級分組2
  37.         delay_init(168);  //初始化延時函數(shù)
  38.         uart_init(115200);//初始化串口波特率為115200
  39.         ChaoShengBo_Init();
  40.         LCD_Init();           //初始化LCD FSMC接口   
  41.         TIM5_CH1_Cap_Init(0XFFFFFFFF,84-1); //以1Mhz的頻率計數(shù)

  42.            while(1)
  43.         {
  44.                         delay_ms(100);
  45.                         GPIO_SetBits(GPIOF,GPIO_Pin_10);
  46.                         delay_ms(1);
  47.                         GPIO_ResetBits(GPIOF,GPIO_Pin_10);  // 給超聲波一個高電平
  48.                 if(TIM5CH1_CAPTURE_STA&0X80)        //成功捕獲到了一次高電平
  49.                 {
  50.                         High_TIME=TIM5CH1_CAPTURE_STA&0X3F;
  51.                         High_TIME*=0XFFFFFFFF;                                          //溢出時間總和
  52.                         High_TIME+=TIM5CH1_CAPTURE_VAL;                   //得到總的高電平時間 單位us
  53.                         distance=High_TIME*340/2/10000;            //單位cm
  54.                         LCD_ShowString(30,40,210,24,24,"High_TIME:");       
  55.                   LCD_ShowString(30,70,210,24,24,"distance:");
  56.                         LCD_ShowxNum(90,40,High_TIME,15,24,0);       
  57.                         LCD_ShowxNum(150,70,distance,20,24,0);         
  58.                         TIM5CH1_CAPTURE_STA=0;                             //開啟下一次捕獲
  59.                 }
  60.         }
  61. }
復制代碼

全部資料51hei下載地址:
點陣.7z (1.52 MB, 下載次數(shù): 39)
回復

使用道具 舉報

ID:213884 發(fā)表于 2020-4-14 10:26 | 顯示全部樓層
2289477193 發(fā)表于 2019-12-24 19:55
這個程序   我覺得你這個不對啊    還有你下面那個文件是騙壇友嗎

自信一點,把“覺得”去掉,他的程序確實不對
回復

使用道具 舉報

ID:643525 發(fā)表于 2019-12-24 19:55 | 顯示全部樓層
這個程序   我覺得你這個不對啊    還有你下面那個文件是騙壇友嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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