实验目标:超声波测距:小于5cm,led被点亮,反之熄灭
超声波测距原理:
怎么让它发送波:
Trig ,给 Trig 端口至少 10us 的高电平
怎么知道它开始发了:
Echo信号,由低电平跳转到高电平,表示开始发送波
怎么知道接收了返回波:
Echo,由高电平跳转回低电平,表示波回来了
怎么算时间
Echo引脚维持高电平的时间!
波发出去的那一下,开始启动定时器
波回来的那一下,我们开始停止定时器,计算出中间经过多少时间
怎么算距离:
距离 = 速度 ( 340m/s ) * 时间 /2
void GetDistance() { unsigned int distance = 0,cnd = 0; //1.发送波,同时启动定时器 //1.1怎么发送波:给Trig一个超过10us的高电平 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET); TIM2_Delay_us(20); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET); //1.2怎么知道发了:echo从低电平到高电平为发送 while(HAL_GPIO_ReadPi