小学生
最后登录1970-1-1
在线时间 小时
注册时间2023-10-30
|
初学32,最近尝试做一个小车
用到超声波模块HCSR04,
单模块使用没有问题,整合整个小车就会出现卡死,
DEBUG中显示在第一个while陷入循环
求大佬告知改进方法,感激不尽
- int16_t sonar_mm(void)
- {
- uint32_t Distance,Distance_mm = 0;
- GPIO_SetBits (GPIOA,Trig);
- Delay_us(15);
- GPIO_ResetBits (GPIOA,Trig);
- while (GPIO_ReadInputDataBit(GPIOA,Echo)==0);//debug显示此处卡死
- time=0;
- while (GPIO_ReadInputDataBit(GPIOA,Echo)==1);
- time_end=time;
- Distance=(time_end*346)/2;
- Distance_mm=Distance/100;
-
- return Distance_mm;
- }
复制代码
- void TIM2_IRQHandler(void)
- {
- if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
- {
- time++;
- TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
- }
- }
复制代码
|
|