打印

32驱动超声波为何不能用

[复制链接]
1148|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
804431966|  楼主 | 2014-9-14 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
超声波型号HC-SR04   
void UltrasonicWave_StartMeasure(void)
{
  GPIO_SetBits(TRIG_PORT,TRIG_PIN);                   //送>10US的高电平
  DelayTime_us(20);                                      //延时20US
  GPIO_ResetBits(TRIG_PORT,TRIG_PIN);
  
  while(!GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN));                     //等待高电平
  TIM_Cmd(TIM2, ENABLE);                                             //开启时钟
  while(GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN));                         //等待低电平
  TIM_Cmd(TIM2, DISABLE);                                                         //定时器2失能
  UltrasonicWave_CalculateTime();                                                                         //计算距离
  TIM_SetCounter(TIM2,0);

        printf("\r\ndistance:%d%d cm\r\n",UltrasonicWave_Distance/256,UltrasonicWave_Distance%256);
这是我的型号,求大神解答我的疑问。

相关帖子

沙发
airwill| | 2014-9-16 09:33 | 只看该作者
你这种程序只能说是做实验玩的.  因为要是
while(!GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN));                     //等待高电平
收不到高电平, 就会卡死在这里!
建议好好地钻研一下编程的技术吧

使用特权

评论回复
板凳
dictionary| | 2014-9-16 17:49 | 只看该作者
同上,编程技巧有待提高。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

19

帖子

0

粉丝