HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40 KHz超声波脉冲。接收器监听发射的脉冲。如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。就是如此简单! 该传感器体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非...
三、代码编写 创建HC-R04.c和HC-R04.h两个文件: HC-R04.h #ifndef_HC_SR04_H#define_HC_SR04_H#include"sys.h"#include"delay.h"#include"stm32f4xx_hal.h"voidHCSR04_Init(void);#defineTrig_ONHAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET)#defineTrig_OFFHAL_GPIO_WritePin(GPIOC,GPIO_P...
RCC_APB2PeriphClockCmd(HCSR04_CLK, ENABLE); NVICtemp = NVIC_EncodePriority(NVIC_PriorityGroup , PreemptionPriority , SubPriority); //中断优先级变量解码 //IO初始化 GPIO_InitStructure.GPIO_Pin =HCSR04_TRIG; //发送电平引脚 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO...
链接:https://pan.baidu.com/s/1LpYvlQzCSa8HRgtUxiLu4g提取码:85sl--来自百度网盘超级会员V3的分享 接着在Keil中对驱动文件进行添加,过程如下所示。 如上图所示,将HC-SR04.c文件添加,接着对GY906.h文件进行添加。 2、代码书写 首先引用头文件以及对串口1进行重映射,可以实现printf函数进行数据发送,代码如...
3. 编写驱动 因为超声波模块往往需要多个,所以采用面向对象的思想设计,将每个模块封装为一个设备对象。 HC_SR04.h 代码语言:javascript 复制 /** * @Copyright (c) 2021,mculover666 All rights reserved * @filename HC_SR04.c * @breif Drive HC_SR04 based on stm32 tim peripheral ...
详细驱动代码如下所示 Hcsr04.c #include "hcsr04.h" #define_PORT GPIOB #define HCSR04_CLK RCC_APB2Periph_GPIOB #define HCSR04_TRIG GPIO_Pin_5 #define HCSR04_ECHO GPIO_Pin_6 #define TRIG_Send PBout(5) #define ECHO_Reci PBin(6) ...
本系列教程所编写的驱动源码: 1. 准备工作 硬件准备 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): 超声波模块使用HC-SR04,如图: 该模块的四个引脚说明如下表: 超声波模块测距原理 如图,超声波模块发出超声波信号,如果前方碰到障碍物,则被障碍物反射回来,模块收到回来的超声波后,即可计算...
本次使用定时器去驱动HC-SR04,没有使用屏幕(主要没有找到),使用了串口进行数据显示。 时钟配置如下: 定时器配置 使用了定时器二,配置如下: 开启定时器的中断 GPIO引脚配置 使用了PA6和PA7两个引脚进行配置,分别做TRIG和ECHO。 串口配置 核心代码 HC-SRO4代码 ...
使用的硬件:STM32F103C8T6,HC-SR04,ST-Link(其他烧录器也可以),0.96寸OLED屏幕(非必须,仅供显示测距结果,可以使用串口助手代替),若干杜邦线。 涉及操作stm32的GPIO口,外部中断,定时器,本文中不会详细解释,仅提供代码思路。 HC-SR04: HC-SR04超声波测距模块提供2cm~400cm的测距功能,精度达3mm。
新建py文件,将下面的驱动代码复制到文件中保存,命名drive_HC_SR04.py 按照接线图连接树莓派与超声波模块 HC-SR04 在另一个文件导入本文件(放在同一文件夹) import drive_HC_SR04 使用函数 drive_HC_SR04.hc_sr04(trig引脚号,echo引脚号) 进行测距 函数返回值为距离 单位为厘米 ...