˜Ë(bi¨¡o)î}: STM32F103VET6³¬Â•²¨œy(c¨¨)¾àÔ´´a [´òÓ¡±¾í“(y¨¨)]

×÷Õß: †ÎƬ™C(j¨©)С°×Ò»‚€(g¨¨)    •r(sh¨ª)ég: 2019-8-6 08:35
˜Ë(bi¨¡o)î}: STM32F103VET6³¬Â•²¨œy(c¨¨)¾àÔ´´a
Ä£‰KÃû·Q£ºHY-SRF05
¹¤×÷Ô­Àí£º½oTRIGÒýÄ_ÖÁÉÙ10us¸ßëŠÆ½ºó£¬Ô“Ä£‰KÁ¢¼´°l(f¨¡)³ö8‚€(g¨¨)40KHZµÄ·½²¨£¬Ö®ºó£¬ECHOÒýÄ_Á¢ñR׃?y¨­u)é¸ßëŠÆ½£¬°l(f¨¡)³öµÄ·½²¨·µ»Øºó£¬ECHOÒýÄ_׃?y¨­u)éµÍëŠÆ½£¬Òò´Ë£¬œy(c¨¨)Á¿¾àëxµÄêP(gu¨¡n)æI¼´žéœy(c¨¨)Á¿ECHOÒýÄ_¸ßëŠÆ½•r(sh¨ª)ég£¬ÎÒÔ‡ÁËÑÓ•r(sh¨ª)ºÍ¶¨•r(sh¨ª)Æ÷ƒÉ·N £¬Ý”Èë²¶«@‘ª(y¨©ng)Ô“Ò²¿ÉÒÔ
ºËÐÄ´ú´a£¬¶¨•r(sh¨ª)Æ÷°æ±¾
float Hcsr04GetLength(void )
{
                    int i = 0;
                                int t=0;
        float lengthTemp = 0;
        float sum = 0;
        while(i!=5)
        {
                                        TRIG_Send = 1;      //°l(f¨¡)ËͿڸßëŠÆ½Ý”³ö
                                        delay_us(20);
                                        TRIG_Send = 0;
                                        while(ECHO_Reci == 0);      //µÈ´ý½ÓÊÕ¿Ú¸ßëŠÆ½Ý”³ö
                                        OpenTimerForHc();        //´òé_(k¨¡i)¶¨•r(sh¨ª)Æ÷                        
                                        while(ECHO_Reci == 1);
                                        CloseTimerForHc();        //êP(gu¨¡n)é]¶¨•r(sh¨ª)Æ÷        
                                        i = i + 1;
                                        t = GetEchoTimer();        //«@È¡•r(sh¨ª)ég,·Ö±æÂÊžé1US
                                        lengthTemp = ((float)t/58.0);//cm
                                         sum = lengthTemp + sum ;
        }

        lengthTemp = sum/5.0;
        return lengthTemp;
}

ÑÓ•r(sh¨ª)°æ±¾
float Hcsr04GetLength(void)
{
        u32 t = 0;
        int i = 0;
        float lengthTemp = 0;
        float sum = 0;
        while(i!=5)
        {
                                        t=0;
                                        ECHO_Reci=0;
                                        TRIG_Send = 1;      //°l(f¨¡)ËͿڸßëŠÆ½Ý”³ö
                                        delay_us(10);
                                        TRIG_Send = 0;
                                        while(ECHO_Reci == 0);      //µÈ´ý½ÓÊÕ¿Ú¸ßëŠÆ½Ý”³ö
                                        while(ECHO_Reci==1)
                                        {
                                                 delay_us(1);//¾«¶È
                                                 t++;
                                        }
                                        i = i + 1;               
                                        lengthTemp = ((float)t/58);//cm
                                        sum = lengthTemp + sum ;
        }
        lengthTemp = sum/5.0;
        return lengthTemp;
}

ÍêÕû´ú´aÒÑ´ò°üžéÒ»‚€(g¨¨)‰º¿s°ü 01.7z (186.74 KB, ÏÂÝd´Î”µ(sh¨´): 48)





šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1