超生波模块,实在不知错误出在哪里,请大家帮忙指点
uint8 ultrasound_capture(void){
uint16 t_chcnt = 0;
trig = 1;
delay_15us();
trig = 0;
while((!echo)&&(t_chcnt <= 7000)) {
t_chcnt++;
}
if(t_chcnt <= 7000) {
return 1;
}
return 0;
}
这个是我检测超生波回波响应信号的函数,感觉很简单,没什么问题,可是串口返回来的都是0;那就证明没检测着对吧;
int main(void)
{
trig = 0;
echo = 0;
usart_init();
while(1) {
SBUF=ultrasound_capture();
Delay1000ms();
while(!TI);
TI = 0;
}
return 0;
}
为什么回波检测,没有响应{:mad:} 问题以自己解决,就是把echo对应的io口调成输入模式,可是我记得8051的单片机在准双向io口模式下是可以检测电平的,为什么12c5a就不行那
{:mad:}
页:
[1]