欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3925|回復: 3
收起左側

STM32F103+野火指南者+HC-SR04測距源程序

[復制鏈接]
ID:427774 發表于 2019-8-4 10:33 | 顯示全部樓層 |閱讀模式
/*********************************************************/
/*主要控制程序,length=(tim+time*1000)*100/58.0;乘100是為了將M轉為CM*/

float Senor_Using(void)


    float length=0,sum=0;
    u16 tim;
    unsigned int i=0;
    /*測5次數據計算一次平均值*/
    while(i!=5)
    {
        printf("111");
        GPIO_SetBits(GPIOC,GPIO_Pin_8);
        SysTick_Delay_Us(20);  //高電平信號超過10us
        GPIO_ResetBits(GPIOC,GPIO_Pin_8);
        /*等待回響信號*/
        while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)==0);
        TIM_Cmd(GENERAL_TIM,ENABLE);
        //回響信號到來,開啟定時器計數
        while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)==1);
        //回響信號消失
        TIM_Cmd(GENERAL_TIM,DISABLE);
        printf("222");
        //關閉定時器
        tim=TIM_GetCounter(GENERAL_TIM);
        //獲取計TIM3數寄存器中的計數值,一邊計算回響信號時間
        length=(tim+time*1000)*100/58.0;
        //通過回響信號計算距離
        sum=length+sum;
        GENERAL_TIM->CNT=0;  //將TIM3計數寄存器的計數值清零
        time=0;  //中斷溢出次數清零
        SysTick_Delay_Ms(60);
        i+=1; //每收到一次回響信號+1,收到5次就計算均值
    }
    length=sum/5;
    return length;
    //距離作為函數返回值
}
/****************************************************************************/
另外對一些不了解的朋友說一下請千萬注意定時器的值。



超聲波顯示.7z

232.63 KB, 下載次數: 129, 下載積分: 黑幣 -5

源碼

評分

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

查看全部評分

回復

使用道具 舉報

ID:585414 發表于 2019-8-4 16:56 | 顯示全部樓層
這個思路強啊,靠譜嗎,精度有多高
回復

使用道具 舉報

ID:427774 發表于 2019-8-4 21:24 | 顯示全部樓層
Laplacey 發表于 2019-8-4 16:56
這個思路強啊,靠譜嗎,精度有多高

角度在15以上誤差在3MM。
回復

使用道具 舉報

ID:481538 發表于 2019-12-3 20:34 | 顯示全部樓層
測試距離大概在什么范圍呢
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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