不用中断的超声波测距
TimerLoadSet(TIMER0_BASE,TIMER_A,SysCtlClockGet());//初值装满40000000
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0x08);//触发信号
SysCtlDelay(SysCtlClockGet()/3000000*20); //延时20微秒
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0x00);//触发结束等待回波
while(GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_2)==0x00);//检测到回波上升沿跳出循环
TimerEnable(TIMER0_BASE, TIMER_A);//开始计时
while(GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_2)==0x04);//检测到回波下降沿跳出循环
运行至此时用串口输出TimerLoadGet(TIMER0_BASE, TIMER_A)的值,无论超声模块怎么放得到的全是装的初值40000000为什么啊啊~~~
此帖出自
小平头技术问答
解决。。非常感谢!!
一周热门 更多>