超声波(HC-SR04)
1、
2、工作流程
①单片机引脚触发Trig测距,给至少10us的高电平
②模块自动发送8个40khz的方波,自动检测是否有信号返回
③有信号返回,通过IO口输出高电平,并单片机ji’shu’an2高电平的持续时间
④超声波从发射到返回的时间
测量距离=(高电平的时间*340m/s)/2 (因为声波一去一回,两倍的距离所以要除以2)
3、涉及单片机主要模块:输入捕获
(1)主要代码如下:
#include "HC_SRO4.h"
uint32_t HC_SRO4Val;//储存没到65535的值
uint32_t count=0;//进入更新中断的次数
uint16_t edge=0;//上升沿标志位
uint32_t startFlag;//开始中断标志位
uint32_t sr04_Over=0;//测量完成标志位
//内部函数的声名
uint32_t calculate(void);
void HC_SRO4Start(void);
//利用GPIO模拟strig信号
void HC_SRO4Start(void)
{
uint32_t i;
HAL_GPIO_WritePin(GPIO_Trig, PIN_Trig, GPIO_PIN_SET);
for(i=0;i<72*40;i++)
__NOP(