OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4214|回复: 3

关于STM32F4的超声波模块程序的问题

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-1-31
在线时间
3 小时
发表于 2018-2-8 23:03:05 | 显示全部楼层 |阅读模式
5金钱
我是照着网上前辈们的程序改的,超声波模块用的HC-SR04,PE11用于发送20us脉冲,PE3开中断用于接收测距后反馈的高电平,并且这个中断也是可以进入的。
所以我认为问题出在定时器的计数上面,但是我经过反复比对,没有发现有哪里纰漏的地方。希望各路大神的指点。
挑了一些比较自己觉得比较关键的代码
这个是始终初始化的
[mw_shl_code=applescript,true]void TIM3_Int_Init(u16 arr,u16 psc)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
       
  TIM_TimeBaseInitStructure.TIM_Period = arr;
        TIM_TimeBaseInitStructure.TIM_Prescaler=psc;
        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInitStructure.TIM_ClockDivision=0;
       
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
       
        TIM_ClearFlag(TIM3, TIM_FLAG_Update);
        TIM_ITConfig(TIM3,TIM_IT_Update|TIM_IT_Trigger,ENABLE);
        //TIM_ITConfig(TIM3,TIM_IT_Trigger,ENABLE);
       
        NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x00;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        TIM_Cmd(TIM3,DISABLE);
       
}[/mw_shl_code]
这个是中断的
[mw_shl_code=applescript,true]void EXTI3_IRQHandler(void)
{
        delay_ms(10);
       
  TIM_SetCounter(TIM3,0);
        TIM_Cmd(TIM3,ENABLE);
        while(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3))
        {
    ;
        }
        TIM_Cmd(TIM3,DISABLE);         
       
        Distance = TIM_GetCounter(TIM3)*340/200.0;
       
        EXTI_ClearITPendingBit(EXTI_Line3);
}[/mw_shl_code]


出现问题的超声波代码.zip

4.74 MB, 下载次数: 103

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-9 12:22:23 | 显示全部楼层
你根本没说出了什么问题。
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-1-31
在线时间
3 小时
 楼主| 发表于 2018-2-9 13:28:00 | 显示全部楼层
a496298685 发表于 2018-2-9 12:22
你根本没说出了什么问题。

啊....一着急连语言都组织不好了。
现在的问题是定时器无法计数。
回复

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-9 13:31:19 | 显示全部楼层
captionaler 发表于 2018-2-9 13:28
啊....一着急连语言都组织不好了。
现在的问题是定时器无法计数。

先确认TIM_Cmd(TIM3,ENABLE);能否让定时器正常运行。

然后再确认是否能正常进入外部中断。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 15:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表