高级会员
- 积分
- 707
- 威望
- 343
- 贡献
- 206
- 兑换币
- 221
- 注册时间
- 2018-10-13
- 在线时间
- 79 小时
|
本帖最后由 词穷vov 于 2019-5-3 16:12 编辑
我用的 HC-SR04 这款超声波 可是返回的数值就只有两个值为啥?用的逐飞的库 请帮忙找下原因
程序如下:
#define TRIG D1 //定义超声波触发引脚端口
#define ECHO E3 // 接收端口
float time,distance;
int main(void)
{
get_clk();//上电后必须运行一次这个函数,获取各个频率信息,便于后面各个模块的参数设置
gpio_init(TRIG,GPO,0); //TRIG 触发
gpio_init(ECHO,GPI,0); // echo 接收
pit_init_ms(pit1,100); //100MS
while(1)
{
gpio_set(TRIG,1); //产生触发脉冲
pit_delay_us(pit1,20);
gpio_set(TRIG,0); //产生一个20us的高电平脉冲
while(gpio_get (ECHO) == 0); //等待电平变高,低电平一直等待
pit_time_start (pit1); //开始计时
while(gpio_get(ECHO) == 1); //等待电平变低,高电平一直等待
time = pit_time_get(pit1); //停止计时,获取计时时间
distance = time * 340 /2/10;
}
}
|
|