新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2023-10-30
- 在线时间
- 2 小时
|
1金钱
初学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);
- }
- }
复制代码
|
|