stm32超声波测距代码

操作思路:

 初始化时将trigecho端口都置低,首先向给trig 发送至少10 us的高电平脉冲(模块自动向外发送840K的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照 测试距离=(高电平时间*声速(340M/S))/2 就可以算出超声波到障碍物的距离。

 

编程步骤

1.配置好相应GPIOTrigEcho引脚

2.配置定时器,开启中断,并记录中断产生次数

3.给模块TRIG端口发送大于10us的高电平信号,发出回响信号时,Echo端呈现高电平,此时打开定时器计时;当收到回响信号时,Echo端呈现低电平,此时关闭定时器。

4.获取Echo高电平时间,利用相关公式计算出距离 dis = (高电平时间*声速(340M/S)/2(取平均值获取更精准数据)

正常距离 亮绿灯

有障碍 亮红灯 蜂鸣器报警

串口显示距离

#include "led.h"
#include "delay.h"
#include "ultrasonsic.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "beep.h"

 int main(void)
 {     
                
    float length;           

    delay_init();            
    uart_init(115200); //初始化串口,波特率115200     
    LED_Init();    //初始化LED        
    BEEP_Init();//初始化蜂鸣器 
    initHcsr04();                                     
    LED0 = 1;//上电默认绿灯亮
        
    while(1){
            
        length=Hcsr04GetLength();    //获取距离
        printf("dis = %fcm\r\n",length);//串口打印距离
        delay_ms(50);
        if(length < 10){//小于10cm亮红灯绿灯灭
            LED0 = 0;
            LED1 = 1;
            BEEP = 1;    
            delay_ms(300);
                
        }else{
            LED0 = 1;
            LED1 = 0;
            BEEP = 0;
        }
            
    }

    } 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/29131.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark大数据处理学习笔记(3.2.2)掌握RDD算子

衔接上文&#xff1a;http://t.csdn.cn/Z0Cfj 文章目录 三、掌握行动算子3.1 归约算子 - reduce()3.2 采集算子 - collect()3.3 首元素算子 - first()3.4 计数算子 - count()3.5 按键计数算子 - countByKey()3.6 前截取算子 - take(n)3.7 排序前截取算子 - takeOrdered(n)[(ord…

vim实用功能汇总

文章目录 1. 读代码1.1 vim中文件跳转1.2 语法高亮模式1.3 Visual 模式 2. 配置vim成为python的IDE 1. 读代码 1.1 vim中文件跳转 vim中文件跳转 这个其实不是靠什么插件完成的&#xff0c;而是vim编辑器自带的功能把光标放在要跳转的文件上&#xff0c;按下gf&#xff0c;即…

加速应用迭代与更新:Weex与小程序容器的快速开发之道

Weex是一个跨平台的移动应用开发框架&#xff0c;由阿里巴巴旗下的阿里巴巴前端团队开发。它允许开发者使用单一的代码库来构建同时适用于iOS和Android平台的移动应用。Weex使用基于Vue.js的声明式语法来描述应用程序的界面&#xff0c;并通过JavaScript运行时引擎在移动设备上…

2023年中职组“网络安全”赛项南昌市竞赛任务书

2023年中职组“网络安全”赛项 南昌市竞赛任务书 网络空间安全赛项规程 一、赛项名称 赛项名称&#xff1a;网络空间安全 赛项组别&#xff1a;中职组 二、竞赛目的 通过竞赛&#xff0c;检验参赛选手对网络、服务器系统等网络空间中各个信息系统的安全防护能力&#xff0…

Python学了基本语法 下一步该干什么 ?

刚入门Python,学习了基本语法后&#xff0c;你可以开始编写简单的程序了。接下来&#xff0c;你可以学习Python的标准库和第三方库&#xff0c;掌握更多的编程技巧和知识&#xff0c;提高自己的编程能力。同时&#xff0c;也可以通过实践项目来巩固所学知识&#xff0c;提高自己…

接口测试和功能测试的区别

目录 前言&#xff1a; 一、测试目的不同 二、测试内容不同 三、测试重点不同 四、总结 前言&#xff1a; 接口测试和功能测试是软件测试中的两种不同类型。接口测试侧重于测试不同模块之间的接口&#xff0c;而功能测试则注重测试完整的业务功能。 一、测试目的不同 接…

【实战】minigpt4的体验和微调

MiniGPT-4 https://github.com/vision-cair/minigpt-4 1 环境配置 1.1 安装环境 git lfs install //如果报错 &#xff1a;git: lfs is not a git command. See git --help. //尝试使用&#xff1a; sudo apt-get install git-lfs git lfs install1.2 准备Vicuna权重 &…

专访泛境科技:如何借助3DCAT实时云渲染打造元宇宙解决方案

随着5G、VR/AR等技术的发展&#xff0c;元宇宙&#xff08;Metaverse&#xff09;这一概念越来越受到关注。元宇宙是一个由虚拟世界构成的网络空间&#xff0c;其中人们可以通过数字化的身份和形象进行各种社交、娱乐、创作和商业活动。元宇宙的核心是虚拟场景&#xff0c;它是…

高考答题卡怎么被机器识别?基于OpenCV答题卡识别模拟-米尔ARM+FPGA异构开发板

本篇测评由优秀测评者“筑梦者与梦同行”提供。 01. 前言MYD-JX8MMA7SDK发布说明 根据下图文件内容可以知道myir-image-full系统支持的功能&#xff0c;其支持OpenCV&#xff0c;也就不用在格外安装相关驱动包等&#xff0c;省了很多事情。 02. MYD-JX8MMA7软件评估指南 本文…

【C语言复习】第一篇、关于我的C语言的复习路线

目录 第一部分、前言 第二部分、学习视频 第三部分、我的建议 第一部分、前言 首先想谈一下为啥都读研究生的我还在学习C语言&#x1f602;&#xff0c;说起来我认为挺搞笑的&#xff0c;一句话解释就是&#xff1a;本科上课的时候&#xff0c;耳朵打苍蝇去&#xff0c;哈哈。…

solr快速上手:常用查询语法(八)

0. 引言 solr作为搜索引擎&#xff0c;就像我们使用mysql一样&#xff0c;在日常业务中&#xff0c;更多接触的则是各类操作语法&#xff0c;所以今天&#xff0c;我们再来学习solr的常用查询语法&#xff0c;为大家在工作中最基本的solr查询打下基础。 solr快速上手&#xff…

NLP学习笔记六-lstm模型

NLP学习笔记六-lstm模型 上一篇我们讲的是simple RNN模型&#xff0c;那么其实lstm模型更像是simple RNN模型的改进或者变种。 对于lstm模型&#xff0c;先看一下总的网络结构图&#xff1a; 我们再看下面一张图&#xff1a; 其实lstm模型的思想是建立在simple RNN模型上的…

【SpringBoot】整合Elasticsearch 快速入门操作索引

官网操作文档&#xff1a;Elasticsearch Clients | Elastic 踩坑太多了。。。这里表明一下Spring Boot2.4以上版本可能会出现问题&#xff0c;所以我降到了2.2.1.RELEASE。对于现在2023年6月而言&#xff0c;Es版本已经到了8.8&#xff0c;而SpringBoot版本已经到了3.x版…

Vue配置proxy代理,但接口报错2007 bad domain

1、排查proxy代理配置是否有误 排查 proxyTable 对象中配置的 target 是否正确。若正确&#xff0c;那可能就是请求头的问题。 无特殊配置的情况下&#xff0c;请求头是这样子的&#xff1a; Host 和 Referer 是本地地址&#xff0c;如果后端增加 CSRF 防御机制&#xff0c;…

to be delete

一、grafana版本升级 1.1 还是先跟着官网简单走一波 建议经常升级Grafana&#xff0c;以获取最新的修补程序和增强功能。 为了实现这一点&#xff0c;Grafana升级向后兼容&#xff0c;并且升级过程简单快捷。升级通常是安全的&#xff08;在许多次要版本和一个主要版本之间&a…

使用JSAPl来做一个倒计时的效果

今天的小案例需要做一个倒计时的效果 我们的时分秒需要一直进行倒计时&#xff0c;然后我们的页面颜色需要根据定时器的操作来进行更换&#xff0c;首先我们还是可以来分析一下我们的HTML步骤 <div class"countdown"><p class"next">今天是22…

线程的创建和使用(一)

1、线程 1.1、线程的概念 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 1.2、创建线程 方法一&#xff1a;继承Thread类 public class Exe_01 {public static void main(String[] args…

[论文阅读笔记76]GPT Understands, Too(P-tuning)

1. 基本信息 题目论文作者与单位来源年份GPT Understands, Too清华大学 Citations, References 论文链接&#xff1a;https://arxiv.org/pdf/2103.10385.pdf 论文代码&#xff1a; 2. 要点 研究主题问题背景核心方法流程亮点数据集结论论文类型关键字微调大模型采用传统微…

什么是HMI和SCADA?两者有什么区别

前言 几十年来&#xff0c;工业控制系统在工业自动化中发挥了重要作用&#xff0c;它允许过程制造商从生产车间采集、分析、处理数据。 在当今瞬息万变的工业环境中&#xff0c;制造商和公用事业公司必须采用现代HMI/SCADA和数字化转型&#xff0c;以跟上变化的步伐&#xff0…

Unity制作二次元卡通渲染角色材质——5、脸部的特殊处理

Unity制作二次元材质角色 回到目录 大家好&#xff0c;我是阿赵。 这里继续讲二次元角色材质的制作。这次是讲头部的做法。 1、脸部 之前在分析资源的时候&#xff0c;其实已经发现了这个模型的脸部法线有问题&#xff0c;导致在做光照模型的时候&#xff0c;脸部很奇怪。 把f…