*/TIM_HandleTypeDef TIM4_Handler;uint32_tpulse_width_us=0;uint32_tdistance_cm=0;voidHCSR04_Init(void){// 定义GPIO的结构体变量GPIO_InitTypeDef GPIO_InitStruct={0};__HAL_RCC_GPIOC_CLK_ENABLE();// 使能超声波的GPIO对应的时钟/*Trig引脚*/GPIO_InitStruct.Pin=GPIO_PIN_8;// 选择超声波的...
所以我们得到第一段代码。 voidWave_SRD_Strat(void){GPIO_SetBits(GPIOB,Trig);//将Trig设置为高电平delay_us(20);//持续大于10us触发,触发超声波模块工作GPIO_ResetBits(GPIOB,Trig);} 步骤2 该模块内部将 发出8 个40kHz 周期电平并 检测回波。一旦检测到有回波 信号则输出 回响信号。 回响信号 的脉冲...
* @param hc_sr04_device the pointer of the hc_sr04_device_t object * @return none */ staticvoidHC_SR04_Start(hc_sr04_device_t*hc_sr04_device) { /* output high level */ HAL_GPIO_WritePin(hc_sr04_device->trig_port,hc_sr04_device->trig_pin,GPIO_PIN_SET); /* maintain high level ...
TRIG_Pin, GPIO_PIN_SET); HAL_Delay(10); HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_RESET); } float HCSR04_ReadDistance(void) { uint32_t pulse_time = 0; float distance; HCSR04_Trigger(); // 触发超声波 // 等待Echo引脚变高 while...
模块初始化: u32 HC_SR04(void) { PAout(1)=1; Delay_us(15); PAout(1)=0; Delay_us(6000); u32 temp; temp=TIM2CH1_CAPTURE_STA&0X3F; temp*=65536;//溢出时间总和temp+=TIM2CH1_CAPTURE_VAL;//得到总的高电平时间TIM2CH1_CAPTURE_STA=0;//开启下一次捕获returntemp; ...
HC05模块是一款高性能主从一体蓝牙串口模块。支持 SPP 蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,它可以充当三种角色,分别是Slave(从角色)、Master(主角色)和Slave-Loop(回环角色)。 连线图 3.超声波(hc-sr04) 介绍 HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作...
本文用的单片机是STM32F103C8T6,超声波测距模块是HC-SR04,显示测距结果用的是0.96寸OLED屏模块。 效果展示 下图中小于10cm时的显示结果有点问题,代码已修复并更新 修复后的结果: 视频演示:https://www.bilibili.com/video/BV1Sg411Z7ex/ HC-SR04硬件概述 ...
使用超声波模块之前,先了解其IO口和工作原理: 1.1 IO说明 VCC: 供5V电源 GND: 为地线 TRIG: 触发控制信号输入 ECHO: 回响信号输出 1.2 基本工作原理: 认真看好以下工作原理,后面的代码就是基于工作原理来实现的。 (1)采用IO口TRIG触发测距,给最少10us的高电平信号。
HC-SR04超声波模块简介 超声波传感器主要利用多普勒原理,通过晶振向外发射超过人体能感知的高频超声波, 一般典型的选用25~40kHz波,然后控制模块检测反射回来波的频率,如果区域内有物体运动, 反射波频率就会有轻微的波动,即多普勒效应,以此来判断照明区域的物体移动,从而达到控制开关的目的。