硬件:STM32F103C8T6微控制器、HC_SR04超声波测距模块软件:CubeMX用于配置微控制器、Keil5用于编写和调试代码、FlyMCU用于烧录程序、野火串口调试助手用于观察数据传输 实验关键代码 uint32_t csb_get_distance(void){ uint32_t CSB_value = 0; // 使能Trig引脚输出高电平 HAL_GPIO_WritePin(Trig_GPIO...
//单次获取测量距离floatHCSR04_Get_Distant(void){HCSR04StartTrigStart();while(!HCSR_ECHO());HCSR04_TimerFunc(1);//start timerwhile(HCSR_ECHO());HCSR04_TimerFunc(0);//stop timerreturn(__HAL_TIM_GetCounter(&htim2))/58.0;}//均值滤波减小测量误差floatDistance(uint8_t cnt){float sum=...
VCC是HC-SR04超声波距离传感器的电源,我们连接了5V的供电。 Trig(Trigger) 引脚用于触发超声波脉冲,下面例程中用的GPIOB5,所以连接STM32的GPIOB5。 Echo回声当接收到反射信号时,引脚产生一个脉冲。脉冲的长度与检测发射信号所需的时间成正比,下面例程中用的GPIO...
HC-SR04需要单独提供5V的供电,因此不能与stm32共用一个VCC(3.3V),而ST-Link有5V的供电接口,因此我将5V电压单独拉出来给HC-SR04供电,GND与stm32用同一个。 HC-SR04的Trig接GPIOA的6号口,Echo接GPIOA的7号口。 接线端口没有硬性要求,只需要修改对应代码即可。需要注意的是修改GPIO口的同时还需要修改为对应的...
STM32驱动HC-SR04 超声波测距模块(HAL) 输入捕获主要参考这位大佬 链接:https://blog.csdn.net/as480133937/article/details/99407485 一、HC-SR04简单介绍 HC-SR04超声波模块常用于机器人避障、物体测距、液位检测、公共安防、停车场检测等场所。HC-SR04超声波模块主要是由两个通用的压电陶瓷超声传感器,并加外围...
本文用的单片机是STM32F103C8T6,超声波测距模块是HC-SR04,显示测距结果用的是0.96寸OLED屏模块。 效果展示 下图中小于10cm时的显示结果有点问题,代码已修复并更新 修复后的结果: 视频演示:https://www.bilibili.com/video/BV1Sg411Z7ex/ 基于STM32和HC-SR04模块实现超声波测距功能 ...
STM32 第七天 超声波传感器 HC-SR04超声波测距模块以其出色的性能脱颖而出。它能够提供2厘米至400厘米的非接触式距离感测,并且测距精度高达3毫米。该模块集成了超声波发射器、接收器以及控制电路,使得测量过程更为便捷。其工作原理也相当简单:通过IO口TRIG触发测距,只需提供最少10微秒的高电平信号。随后,模块会...
(1)STM32给超声波的Trig管脚一个10微秒的高电平,此时将触发超声波工作。 (2)超声波发射端会发送8个40KHz的方波,方波发射后遇障碍物返回到超声波接收端。 (3)模块将记录超声波来回的时间,并从Echo管脚输出一个与该时间等长的高电平。 **测试距离=(高电平时间*声速(340M/S))/2 或者 us/58 =厘米 ...
*@briefHC_SR04读取超声波距离 *@param无 *@return障碍物距离单位:cm (静止表面平整精度更高) *注意:两个HC_SR04_Read()函数调用的时间间隔要2ms及以上,测量范围更大 精度更高 ***/floatHC_SR04_Read(void) { uint32_t i =0;floatDistance; HAL_GPIO_WritePin(HC_SR04...
我这边用的是HC-SR04模块+STM32F103ZET6开发板+示波器,示波器是帮助分析用,可以验证设计和实际是否一致的工具,可以不要。开发板也只是起一个连接串口调试助手,产生PWM以及输入捕获的一个功能,并不一样要和我一样的开发板,理论上任何一个开发板都可以实现这个功能。2.2软件知识 要用上面这套工具实现超声波...