当前位置:   article > 正文

STM32(HAL库)驱动HC-SR04测距模块_hcsr04 stm32 自动跟随

hcsr04 stm32 自动跟随

1、简介

本文介绍通过STM32F103C8T6单片机对HC-SR04测距模块进行驱动,并且通过串口对数据进行打印。

2、操作流程

2.1 Cubemax初始化配置

首先进行初始化配置,点击进行跳转。

接着对PA0引脚进行TM2_CH1配置,最为Echo管脚,并且使能定时器中断如下图所示。

接着对PA1引脚进行配置,作为Trig引脚驱动,配置图如下所示。

接着对串口1进行配置,如下所示。

最后生成文件,进行程序书写。

2.2 keil端程序书写

  1. 添加HC-SR04库文件

在生成的文件夹中建议新文件夹icode如下所示。

接着在新文件夹中复制gy-906库文件如下所示。

库文件文件链接如下所示。

  1. 链接:https://pan.baidu.com/s/1LpYvlQzCSa8HRgtUxiLu4g
  2. 提取码:85sl
  3. --来自百度网盘超级会员V3的分享

接着在Keil中对驱动文件进行添加,过程如下所示。

如上图所示,将HC-SR04.c文件添加,接着对GY906.h文件进行添加。

2、代码书写

首先引用头文件以及对串口1进行重映射,可以实现printf函数进行数据发送,代码如下所示:

  1. #include "stdio.h"
  2. #include "HC-SR04.h"
  3. //#include "Uart_printf.h"
  4. int fputc(int ch, FILE *f)
  5. {
  6. uint8_t temp[1] = {ch};
  7. HAL_UART_Transmit(&huart1, temp, 1, 2);
  8. //HAL_UART_Transmit(&huart2, temp, 1, 2);
  9. return ch;
  10. }

接着在主函数中对该模块进行数据读取与打印,代码如下所示:

  1. /* USER CODE BEGIN WHILE */
  2. while (1)
  3. {
  4. SR04_GetData();
  5. printf("\r\n检测距离为:%.2fcm\r\n",distant);
  6. HAL_Delay(1500);
  7. /* USER CODE END WHILE */
  8. /* USER CODE BEGIN 3 */
  9. }

输出结果如下所示:

上文如有错误恳请各位大佬指正。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/46193
推荐阅读
相关标签
  

闽ICP备14008679号