当前位置: 首页> 财经> 创投人物 > HC-SR04超声波测距模块使用方法和例程(STM32快速移植)

HC-SR04超声波测距模块使用方法和例程(STM32快速移植)

时间:2025/7/11 18:53:16来源:https://blog.csdn.net/2301_79656184/article/details/140593742 浏览次数:0次

基于STM32和HC-SR04模块实现超声波测距功能

HC-SR04硬件概述
HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40 KHz超声波脉冲。接收器监听发射的脉冲。如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。就是如此简单!

该传感器体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非接触范围检测,精度为3mm。

硬件接线图


image.png

CubeMx:

image.png image.png

开一个定时器(基本定时器就行) 打开这个以及超过超声波最多能探测范围这样就行
image.png

#ifndef _SR04_H
#define _SR04_H#include "stm32f1xx_hal.h"void GET_Distance(void);#endif
#include "sr04.h"
#include "oled.h"
#include "encoder.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
uint16_t count;
float distance;
extern TIM_HandleTypeDef htim7;
void RCCdelay_us(uint32_t udelay)
{__IO uint32_t Delay = udelay * 72 / 8;//(SystemCoreClock / 8U / 1000000U)//见stm32f1xx_hal_rcc.c -- static void RCC_Delay(uint32_t mdelay)do{__NOP();}while (Delay --);
}void GET_Distance(void)
{HAL_GPIO_WritePin(GPIOE,GPIO_PIN_12,GPIO_PIN_SET);RCCdelay_us(12);HAL_GPIO_WritePin(GPIOE,GPIO_PIN_12,GPIO_PIN_RESET);
}void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin==GPIO_PIN_14){if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_14)==GPIO_PIN_SET){__HAL_TIM_SetCounter(&htim7,0);HAL_TIM_Base_Start(&htim7);}else{HAL_TIM_Base_Stop(&htim7);count=__HAL_TIM_GetCounter(&htim7);distance=count*0.017;}}
}
关键字:HC-SR04超声波测距模块使用方法和例程(STM32快速移植)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: