经验分享帖 基于STM32的超声波测距HC-SR04(附程序)
CSDN上其实有很多超声波测距的博客,但我还是想写一篇,主要是附上可用的程序,伸手党最爱。其实我也是个伸手党,不过还是希望大家能自己动手自己多练自己能实现。
同时写下我的心得与看法:
1,程序是用STM32CubeMX生成代码并改造完成的,所以使用的HAL库。
2,使用的是高级定时器TIM1(仅计时,没有用输入捕获的功能)+ 外部中断EXTI。
3,定时器分频值理论上越小结果越精确,自动重装载值越大越不容易溢出(因为定时器一旦溢出,那结果就要考虑加上n*65536这种情况(n为溢出次数))。
4,所以我设置PSC=72-1,ARR=65536-1。这时定时器计一个数耗时为1us ,由于距离结果是直接获得cm的 ,所以音速单位我们将其换成cm/us ,
5,我手中的超声波模块HC-SR04是5V供电的,不了解其他的是不是也是这样,用3.3V供电的话结果误差较大。
6,HAL库我使得并不熟,所以连设置当前计数器的值和读当期计数器的值这两个函数我都不知道名字叫啥,不过幸好我晓得他们最终操作的是哪个寄存器,就是TIM1->CNT了。所以,有些寄存器操作还是很简单的,譬如,一些数据寄存器:USART1->DR, SPI1->DR, TIM1->PSC, TIM1->ARR.里面存的都是数,因此不用考虑每一位是啥子功能。
7,PF5接Echo, PF6接Trig, 暂时想不到了,嘻嘻先这样吧,以后想到了再补充。写得不好,多多见谅,欢迎批评指正。
贴两张图
最后留下程序:
链接:https://pan.baidu.com/s/1HfPSHaTwpq23DD83RbbmIA
提取码:f2hj
2022-07-05插入一张图片,并给提问问题的小伙伴:提问问题请将问题描述清楚,一句“怎么没数据”“怎么不显示”,这样的问题我是真的不知道
经验分享帖 基于STM32的超声波测距HC-SR04(附程序)相关推荐
- 基于STM32和超声波测距传感器的测距功能设计
基于STM32和超声波测距传感器的测距功能设计(使用陌生传感器的流程介绍) 引言 项目设计 项目简介 开发工具 硬件设计 软件设计 开发流程 阅读手册 配置并测试传感器相关设置 软件开发 总结 后续 ...
- 基于STM32的超声波测距
一.HC-SR04模块介绍 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可高达3mm:模块包括超声波发射器.接收器.与控制电路. 模块的基本工作原理为: (1) ...
- 基于STM32的超声波雷达项目【可拟合构建平面地图】(代码开源)
前言:本文为手把手教学基于STM32的超声波雷达项目--HC-SR04雷达.本次项目采用的是STM32作为MCU,搭配常用的HC-SR04超声波模块与舵机SG90实现模拟雷达检测的效果 ...
- 基于stm32的超声波HC-SR04测距仪含距离报警(温度补偿)
前言:本文主要是紧跟前一篇文章中有关超声波HC-SR04模块进行的扩展实验,主要涉及超声波测距的温度补偿(DHT11),并搭配蜂鸣器的距离报警.整体实验较为简单,为常用的几个传感器模块相互配 ...
- 基于STM32的超声波倒车检测装置
基于STM32的超声波倒车检测装置 一.前言 这里是为了完成学校嵌入式系统及应用实验而做的一个作业,硬件资源使用的是STM32F103VBT6开发板.HC-SR04超声波模块,蜂鸣器和数码管开发板上以 ...
- STM32用超声波测距模块实现测距
STM32用超声波测距模块实现测距 通过超声波测距模块可以实现超声波反射型距离测试.市面上的超声波测距模块主要有两种.一种是分体式模块(HC-SR04等),由超生波发射头和接收头组成,一种是一体式模块 ...
- 创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)
基于STC51单片机超声波测距精简设计只需三个元件(测距模块暂且算做是一个元件吧) 1.所需元件:STC单片机+超声波模块+4位共阳数码管 2.原理:单片机向测距模块trig脚发送20us的高电平触发 ...
- 2022-4-15 基于单片机的超声波测距报警
基于单片机的超声波测距报警 系统设计软件:Proteus8.10和keil4 .proteus8.10版本安装包可在微信公众号下载 系统源代码和仿真等资料可在文末的链接中下载 系统组成:单片机最小系统 ...
- 基于51单片机超声波测距液位检测-温度检测
[毕设课设]基于51单片机超声波测距液位检测-温度检测 效果图 Proteus仿真: 功能简介: 文件内容: 程序框架: 网盘链接: 效果图 更多内容请关注@WENJIE电子科技 基于51单片 ...
最新文章
- Java之JDK、JRE、JVM
- jQuery 1.9使用$.support替代$.browser的使用方法
- javaweb k8s_K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程...
- qdu_ACM集训队3月5号组队训练
- mysql 原生 添加数据_手撸Mysql原生语句--增删改查
- C++STL与泛型编程(4)OOP(面向对象编程) Vs. GP(泛型编程)
- python测试框架untest_Python测试框架之unittest和pytest
- java正则匹配下划线_java验证,”支持6-20个字母、数字、下划线或减号,以字母开头“这个的正则表达式怎么写?...
- Linux:is not in the sudoers file
- 深入分析linux内核源码
- 代码好味道、坏味道与重构
- 步步为营-83-用户控件
- atitit tag标签标示规范 attilax总结 v2 r922.docx
- win10 安装SQL Server 2005--以及---安装SQL2005之后卸载,重新安装时提示“安装默认报表服务器的必备组件检查失败”的方法
- 基于STM32的超声波避障小车
- (转载)c++builder/delphi中透明panel及透明窗口的实现方法_delphi教程
- 腾讯云文档数据库MongoDB怎么样?腾讯云文档数据库MongoDB有什么优点?
- 企业“招投标”一般需要办理哪些体系认证?
- 南卫理公会大学 计算机排名,南卫理公会大学美国大学排名及专业排名汇总(USNEWS美国大学排名版)...
- Python 面向对象