STM32(HAL库)驱动HC-SR04测距模块

简介: STM32(HAL库)驱动HC-SR04测距模块

1、简介

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


2、操作流程

2.1 Cubemax初始化配置

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

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


f15bf0c34b9be759b9370d7764810920.png

af607f9487bce97c5189e58a2b4e8fcd.png

51f42659f56d35c57644a2cc4f210080.png


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



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



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


2.2 keil端程序书写

1.添加HC-SR04库文件

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


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



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

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


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



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



2、代码书写

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

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


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

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


输出结果如下所示:



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

相关文章
|
2天前
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
25 14
|
2天前
STM32Cubemx PWM驱动SG90舵机
STM32Cubemx PWM驱动SG90舵机
21 13
|
2天前
STM32CubeMX mpu6050驱动
STM32CubeMX mpu6050驱动
21 10
|
2天前
STM32CubeMX EC11旋转编码器驱动
STM32CubeMX EC11旋转编码器驱动
22 10
|
2天前
STM32CubeMX WS2812B灯驱动
STM32CubeMX WS2812B灯驱动
5 1
|
2天前
STM32CubeMX ULN2003步进电机驱动
STM32CubeMX ULN2003步进电机驱动
5 0
|
2天前
STM32Cubemx TB6612直流电机驱动
STM32Cubemx TB6612直流电机驱动
4 0
|
6天前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
|
1月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
91 2
|
1月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
118 4