HC_SR04超声传感器——通用定时器TIM4_CH1单通道输入捕获_寄存器开发

超声波 (HC_SR04)检测模块

现在基本没有BUG
效果RUN
在这里插入图片描述
在这里插入图片描述

模块分析
引脚:
VCC-5V
GND-接地
Trig:接收来自单片机 发出的 激活脉冲(超过10us的高电平)
Echo:发送脉冲给单片机处理。
原理
单片机 通过GPIO口 给Trig发送一个超过10us的高电平激活SR04开始工作发出超声波

传感器 发送一个超声波 此时传感器的Echo变为高电平 ,当接收到物体返回给超声波的时候,转为低电平,只要测出高电平的时间t 即可算出距离。

距离公式:V(声速)*t/2.0=l
时间公式:time_Sammary=ARR(计数器的计数周期)*count(计数器有轮巡次数)—time_Data1(上升沿的时间)+time_Data2(下降沿的时间);

程序分析
1通过TIM7的定时中断给 每100ms给传感器发送1个15us的高电平
/要输出高电平的GPIO初始化/
/TIM7基本定时器初始化/
ARR,PSC输入的值要减去1,因为ARR是从0开始算的
/NVIC中断控制器配置/
/中断服务函数/
2通用定时器TIM4_CH1单通道输入捕获初始化
/接收传感器发送数据的IO口的初始化/
/TIM4_CH1通用定时器的初始化/
// 使能,中断记得放下面 ,
/NVIC中断控制器的初始化/
/更新中断/
//计数器轮询累加
/捕获中断/
//检测到上升沿触发
//检测到下降沿触发

遇到错误

1.超声波 的Trig 的激活函数
TIM6(定时中断 无法进入 ------没写NVIC控制器函数
在这里插入图片描述

  1. 一个定时器 即做延时又做定时中断-----NO
    在这里插入图片描述

3 ) 输出数据是浮点型 ,但是并未定义 浮点型变量,导致测距 不准确
在这里插入图片描述

4 ) —捕获中断 无法进入)---------没有捕获中断使能
在这里插入图片描述
**

代码:

**
1基本定时器的定时中断
在这里插入图片描述
在这里插入图片描述
2 通用定时器 输入捕获
在这里插入图片描述
在这里插入图片描述

3 中断服务函数–打印距离
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值