STM32F407超声波测距

2019-07-20 01:21发布

哪里出了问题,搞不懂。

nt main(void)
{
   int distance ;  
    u16 TIM = 0;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
    delay_init(168);  //3õê¼»ˉÑóê±oˉêy
   LED_Init();                                //3õê¼»ˉLED¶Ë¿ú
        uart_init(115200);

         TIM3_Int_Init(5000-1,8400-1);        //¶¨ê±Æ÷ê±Öó84M£¬·ÖÆμÏμêy8400£¬ËùòÔ84M/420=200KhzμļÆêyÆμÂ꣬¼Æêy5000′ÎÎa500ms  
  Ultran_Init()        ;
        while(1)
        {
    GPIO_SetBits(ULTRA_PORT, ULTRA_TRIG);   //¸øtrig′óóú10usμĸßμçƽ
    delay_us(20);  
    GPIO_ResetBits(ULTRA_PORT, ULTRA_TRIG);  

    while(!GPIO_ReadInputDataBit(ULTRA_PORT, ULTRA_ECHO))   //μè′yecho¸ßμçƽ
    TIM_SetCounter(TIM3,0);
                TIM_Cmd(TIM3,ENABLE);                          //¶¨ê±Æ÷¼ÆêyÆ÷ÖÃá㣬òòÎa′óÕaàï¿a꼼Ǽ¸ßμçƽ걼ä
    while(GPIO_ReadInputDataBit(ULTRA_PORT, ULTRA_ECHO))      //μè′yμíμçƽ
    TIM_Cmd(TIM3, DISABLE);             //¸ßμçƽ½áêø£¬1رն¨ê±Æ÷

    TIM = TIM_GetCounter(TIM3);  
    distance = TIM*0.85;
                printf("distance is = %d cm ",distance);
                delay_ms(500);
                LED0=!LED0;
        }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
沈鑫龙
1楼-- · 2019-07-20 03:20
 精彩回答 2  元偷偷看……
plue
2楼-- · 2019-07-20 04:36
这个F407的超声波模块我玩过,把定时器配置成输入捕获模式,捕获高低电平时间,通过超声波模块转换就可以把距离显示在串口助手上,不过你这个代码有点乱,一些time.c里面配置的怎么放到主函数来了 ,逻辑结构不是很清晰
yqp
3楼-- · 2019-07-20 10:36
 精彩回答 2  元偷偷看……
Gobben
4楼-- · 2019-07-20 16:35
yqp 发表于 2019-6-11 13:31
大佬,你现在还有代码吗,我现在在研究,但一直没有找到stm32的代码

我有写好的代码。
yqp
5楼-- · 2019-07-20 17:24
Gobben 发表于 2019-6-11 15:01
我有写好的代码。

能发给我参考一下吗
plue
6楼-- · 2019-07-20 19:36
 精彩回答 2  元偷偷看……

一周热门 更多>