stm32:定时器,GPIO,hc-sr04

本文介绍了如何使用STM32的定时器和GPIO接口配合HC-SR04超声波传感器进行测距。通过设置定时器在23ms以上溢出,以30ms为周期进行5次测量作为滤波,从而得到稳定的距离数据。在实际操作中应注意GPIO口配置、线路检查以及目标物的选择和焊接质量。
摘要由CSDN通过智能技术生成
	stm32:定时器,GPIO,hc-sr04

首先说明考察点,如标题:	定时器,GPIO,hc-sr04



第一次接触32板子,我以为这和51一样,在开发板上直接操作,所以第一步是找超声波对应的引脚,当然,这是不可能的,这也为GPIO口的学习奠定了基础;

然后是hc-sr04,查资料,原理很简单,trig发出一个不低于10us的高电平方波,关掉trig,开定时器,等echo接受,关定时器,拿出时间计算距离;

定时器很重要,下面有较详细的解释;

超声波:
使能对应时钟,
trig选输出,echo输入,GPIO口选自己喜欢的

t

定时器:
[hc-sr04的工作距离是4m,对应声速的时间为23ms…所以我只需要让定时器在23ms以上一个溢出就不需要考虑中断,这里是30ms,时间等于(arr+1)*(psc+1)/频率,单位s,定时器3的频率是84mhz,因此,time=(29999+1)(83+1)/84000000=0.03s=30ms
z

main:
5次一循环,作为滤波,之后直接打印lengthtemp,阈值只需要在打印前判断数字,然后用if做个记号就可以了.

懒得截图了,这个是获取的时间,TIM_GetCounter可以将定时器当前计的数字拿出来,赋给变量,记得用过后初始化为0;
void GetEchoTimer()
{
t=(TIM_GetCounter(TIM3));
TIM3->CNT=0;
return t;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值