OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1804|回复: 0

超声波模块HCSR04循环卡死

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2023-10-30
在线时间
2 小时
发表于 2023-10-31 10:32:22 | 显示全部楼层 |阅读模式
1金钱
初学32,最近尝试做一个小车,
用到超声波模块HCSR04,
单模块使用没有问题,整合整个小车就会出现卡死,
DEBUG中显示在第一个while陷入循环,
求大佬告知改进方法,感激不尽。
  1. int16_t sonar_mm(void)                                                        
  2. {
  3.      uint32_t Distance,Distance_mm = 0;
  4.      GPIO_SetBits (GPIOA,Trig);                                       
  5.      Delay_us(15);                                                               
  6.      GPIO_ResetBits (GPIOA,Trig);                                
  7.      while (GPIO_ReadInputDataBit(GPIOA,Echo)==0);    //debug显示此处卡死
  8.      time=0;                                                                                
  9.      while (GPIO_ReadInputDataBit(GPIOA,Echo)==1);
  10.      time_end=time;                                                               

  11.      Distance=(time_end*346)/2;                                       
  12.      Distance_mm=Distance/100;                                       
  13.         
  14.      return Distance_mm;                                                        
  15. }
复制代码
  1. void TIM2_IRQHandler(void)                                       
  2. {                                                                                                
  3.      if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
  4.      {
  5.          time++;
  6.          TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
  7.      }
  8. }
复制代码



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 11:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表