超声波测距

  • 1. 超声波测距模块原理
  • 2. CubeMx配置
  • 3. 代码的编写
    • 3.1 定时器计时的计算
    • 3.2 接口函数

1. 超声波测距模块原理

(2021/11/28 16:25编辑)
超声波测距模块有Trig引脚和Echo引脚来进行测距,当Trig引脚拉高大于11us之后触发超声波测距模块,Echo引脚变高,随后发出超声波,经过反弹回来接受到回来的超声波之后Echo引脚会变低
距离=Echo引脚从高变低的时间∗声速距离=Echo引脚从高变低的时间*声速 距离=Echo引脚从高变低的时间∗声速
(2021/11/28 16:35编辑结束)

2. CubeMx配置

3. 代码的编写

(2021/11/28编辑)

3.1 定时器计时的计算

  • 定时器计时的时间=计数值(CNT)分频数(PSC)/晶振频率(72M)+周期数周期(单位:S)
  • 比如:我如下代码我返回的时间是us,晶振是72MHZ,PSC是7200-1,CNT是10000-1,所以我一个周期就是(PSC+1)(CNT+1)/72M=1S,计数一次的时间是:(PSC+1)/72M=1/10000说明一秒中振荡10000次,所以计数一次是(1/10000)S,所以换算成us的时候要计数值100
  • 具体可以看我的文章:STM32——定时器TIM(重中之重)
/*
** 函数功能:获取定时器计时的时间
** 参    数:定时器句柄htimx
** 返 回 值:定时器计算的时间(单位:us)
** 作   者: LJF
*/
uint32_t Get_TIM_Time(TIM_HandleTypeDef* htimx)
{uint32_t time;/*时间=当前定时器计数值*计数一次所需要的时间+周期数*周期*/time=htimx->Instance->CNT*100+Time_Sound_Interrupt*TIM_T;Time_Sound_Interrupt=0;//周期计数变量手动置0htimx->Instance->CNT=0;//定时器计数寄存器置0return time;
}

参考文章:
STM32定时器的预装载值和预分频系数如何确立
STM32的定时器定时时间计算(计数时间和中断定时时间)
(2021/11/28 1:24编辑结束)

3.2 接口函数

/*
** 函数功能:超声波测距
** 参    数:定时器句柄*htimx、
** 返 回 值:测试出来的最终距离(单位:cm)
** 作   者: LJF
** 说   明:
*/
float HCSR04_GetDistant(TIM_HandleTypeDef* htimx,GPIO_TypeDef *Trig_GPIO_Port, uint16_t Trig_Pin,GPIO_TypeDef *Echo_GPIO_Port, uint16_t Echo_Pin)
{uint32_t times=0;HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_SET);//拉高Trigdelay_us(11);                //将Trig拉高至少10usHAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_RESET);//拉低Trigwhile (HAL_GPIO_ReadPin(Echo_GPIO_Port,Echo_Pin)==GPIO_PIN_RESET);//等待高电平              HAL_TIM_Base_Start(htimx);     //开启TIMx开始计时HAL_TIM_Base_Start_IT(htimx);  //使能TIM2中断while (HAL_GPIO_ReadPin(Echo_GPIO_Port,Echo_Pin)==GPIO_PIN_SET);//等待低电平HAL_TIM_Base_Stop(htimx);      //关闭TIMx停止计时HAL_TIM_Base_Stop_IT(htimx);  //使能TIM2中断times=Get_TIM_Time(htimx);          //获取TIMx的时间printf("times=%d\r\n",times);return  times*0.017;//0.017=340/2/1000000*100
}

STM32——超声波测距模块(HAL库CubeMx)相关推荐

  1. stm32直流电机PID控制hal库(Cubemx)

    stm32直流电机PID控制hal库(Cubemx),一步步手把手教你怎么配置cubemx怎么写代码. 未对pid就行深入解析,不过相信您通过配置和写代码以后大概可以知道pid的主要作用. 文章目录 ...

  2. STM32 超声波测距模块HC-SR04 驱动

    HC-SR04是常用的测距模块,这里分享关于这个模块的使用方法. 基本原理: Trig口输入一个大于10us的高电平做激励(一般用20us) 随后检测Echo口的电平,产生高电平时开始计时,直至低电平 ...

  3. STM32单片机基于HAL库开发HC-SR04 超声波测距模块(终极版)

    参考: 某宝HC-SR04 超声波测距模块商品详情页 STM32L051C8T6 HAL库 输入捕获进行超声波测距 案例 STM32CubeMX学习笔记3--TIM2输入捕获(SR-04测距) cub ...

  4. STM32用超声波测距模块实现测距

    STM32用超声波测距模块实现测距 通过超声波测距模块可以实现超声波反射型距离测试.市面上的超声波测距模块主要有两种.一种是分体式模块(HC-SR04等),由超生波发射头和接收头组成,一种是一体式模块 ...

  5. HC-SR04超声波测距模块使用方法和例程(STM32)

    基于STM32和HC-SR04模块实现超声波测距功能 最近在学STM32做个简单的应用实践一下,顺便水一篇文章. 本文用的单片机是STM32F103C8T6,超声波测距模块是HC-SR04,显示测距结 ...

  6. stm32控制超声波测距模块HC-SR04

    引脚:PB15 TRIG,PB0 ECHO: 不同距离,LED对应不良.闪烁.亮状态,并通过串口发送到PC; TIM3定时中断,测出脉宽长度,没有像野火一样使用捕捉功能: 1.HS-SR04模块实物图 ...

  7. stm32蓝牙模块和超声波测距模块

    蓝牙 蓝牙概念 蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接. [1] 蓝牙使当前的一些便携移动设备和计算 ...

  8. 学习并使用HC-SR04超声波测距模块+STM32

    ** 超声波测距原理 ** 参考博客: https://blog.csdn.net/qq_40734815/article/details/105992801 https://blog.csdn.ne ...

  9. STM32蓝牙控制循迹避障小车源代码——3.舵机、超声波测距模块

    STM32蓝牙控制循迹避障小车源代码--3.舵机.超声波测距模块 注意-所需模块: US-015超声波模块 SG90舵机云台 接线:舵机超声波: A1–P2.7 B8–Trig B9–Echo 代码 ...

最新文章

  1. QT+VS打包发布流程该怎么做?
  2. 阿里达摩院青橙奖颁出:10名85后每人100万!其中有硬核粉红少女,还有人被LeCun点名支持...
  3. 计算机组成原理课设移位,计算机组成原理课设(多寄存器减法、右移位、输入输出、转移指令实验计算机设计)...
  4. DBA(二):percona软件、innobackupex备份与恢复
  5. 手机应用在线打包url
  6. zabbix邮件告警
  7. java 内部thread_Java代码质量改进之:使用ThreadLocal维护线程内部变量
  8. .net redis定时_一场由fork引发的超时,让我们重新探讨Redis的抖动问题
  9. Sage CRM升级注意事项二
  10. Python的单链表实现
  11. Power Query获取整理多来源数据
  12. Net设计模式实例之组合模式(Composite Pattern)(3)
  13. Android View之布局加载流程
  14. VGA、HDMI、DVI 和 DP接口
  15. 图吧主机linux,图吧垃圾佬的LINUX体验
  16. Linux ubuntu14.04 下 chromium 浏览器 CPU占用资源优化
  17. python写生日祝福语大全_【Python 1-6】Python教程之——数字
  18. buildroot 执行 make savedefconfig 错误解决
  19. QT - 小型翻车现场
  20. OA项目总结(附程序源码)

热门文章

  1. android提取图片颜色代码,Android 中动态提取图片中颜色作为主题色
  2. CLRS第四章思考题
  3. Android 中获取随机颜色算法
  4. Hadoop实战视频分享 2013年完整版学习视频种子下载
  5. 产品经理常用工作方法及原则汇总
  6. 备份之前ubuntu里面安装程序的一些小东西
  7. 移除Ubuntu上陈旧的PPA仓库
  8. CSP考试复习:第一单元 C++语言基础1.6 其他常用操作!
  9. 微信小程序_自定义头像和昵称
  10. 【Python机器学习预测分析算法实战三】预测模型性能评估及影响因素