本人初学,现在要做一个stm32超声波测距仪,用oled显示读数,用的是哔站up主Cheers创客分享的代码,可是不管怎么自动超声波传感器, Oled读数一直都是0,看评论说是电压不够,于是我将超声波的vcc接到了5v上,发现仍然不行,是哪里出问题了



本人初学,现在要做一个stm32超声波测距仪,用oled显示读数,用的是哔站up主Cheers创客分享的代码,可是不管怎么自动超声波传感器, Oled读数一直都是0,看评论说是电压不够,于是我将超声波的vcc接到了5v上,发现仍然不行,是哪里出问题了



阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你使用STM32单片机,超声波测距仪,OLED显示读数,但读数总是0。根据你的描述,你已经检查了超声波传感器的电压是否足够,但问题仍然存在。
可能的解决方案:
以下是一个简单的超声波测距算法示例代码:
#include <stm32f1xx_hal.h>
#include <math.h>
#define TRIGGER_PIN GPIO_PIN_0
#define ECHO_PIN GPIO_PIN_1
int main(void) {
// 初始化超声波传感器
HAL_GPIO_WritePin(TRIGGER_PIN, GPIO_PIN_SET);
HAL_Delay(10);
HAL_GPIO_WritePin(TRIGGER_PIN, GPIO_PIN_RESET);
// 读取超声波传感器的数据
int duration = HAL_GPIO_ReadPin(ECHO_PIN);
int distance = (duration * 34000) / 2;
// 显示读数
OLED_Display(distance);
return 0;
}
这个代码示例中,我们使用HAL库来初始化超声波传感器,然后读取超声波传感器的数据,最后将读数显示在OLED显示器上。
如果你仍然无法解决问题,请提供更多的代码和详细信息,我将尽力帮助你解决问题。