超声波测距传感器-HC-SR04 STM32407 中断触发

原理:
1.给控制端Trig一个至少持续10us的高电平信号
2.模块内部自动发送8个40kHZ的脉冲,自动检测是否有信号返回。
3. 信号返回时,接收端Echo检测到高电平,高电平持续的时间即决定的检测距离 距离=(高电平脉冲时间*340)/2.(声的传播速度340m/s)
4.鉴于我已经在别的模块用过外部中断,所以使用定时器的输入捕获引脚,进行抓取,当识别到上升沿时定时器开始计时,识别到下降沿时计时结束。
程序编程:
1.Echo引脚需要是一个能实现定时器的引脚。并且设置模式为输入捕获
因为STM32F4中有上下拉推挽输出模式。 这里设置为下拉(GPIO_PuPd_DOWN),根据时序图高电平开始有效。
复用模式为定时器。注意:STM32F4的复用和F1的复用完全不同的配置
习惯了F1配置的我不得不重新学习F4的配置,光看数据手册,并不能很快理解。
F4中每个可复用的引脚可映射到相应的功能,比如PA0复用为TIM5_CH1,TIM5对应AF2。库函数将 AF2定义为GPIO_AF_TIM5;
GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5);
F4复用 区别于F1一个IO引脚不只有一个复用功能。

2.Trig设置为下拉推挽输出。
typedef struct
{
uint32_t GPIO_Pin;

GPIOMode_TypeDef GPIO_Mode;

GPIOSpeed_TypeDef GPIO_Speed;

GPIOOType_TypeDef GPIO_OType;
GPIOPuPd_TypeDef GPIO_PuPd;
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值