本文主要是介绍STM32 | 超声波实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
01、上节回顾
| STM32 | HC-SR04 超声波测距模块 | DHT11数字温湿度传感器(第七天) |
| STM32 | 数字温湿度传感器DHT11 |
| STM32 | HC-SR04 超声波测距模块 |
| STM32 | DHT11数字温湿度传感器实战 |
02、超声波图示

03、超声波头文件
#ifndef __SR04_H#define __SR04_H#include "stm32f4xx.h"#include "delay.h"void Sr04_Init(void);u16 Get_Sr04_Value(void);#endif
04、超声波源文件
#include "sr04.h"/*********************************引脚说明:PA2做为普通输出(TRIG)PA3做为普通输入(ECHO)**********************************/void Sr04_Init(void){GPIO_InitTypeDef GPIO_InitStruct;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;//使能GPIOA组时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//1、能定时器时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; //引脚20GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //输出模式GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //推挽输出GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //速度GPIO_Init(GPIOA, &GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; //引脚3GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //输入模式GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉GPIO_Init(GPIOA, &GPIO_InitStruct);TIM_TimeBaseInitStruct.TIM_Prescaler = 84-1; // 84分频 84MHZ/84 = 1MHZTIM_TimeBaseInitStruct.TIM_Period = 50000-1;TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数TIM_TimeBaseInitStruct.TIM_ClockDivision= TIM_CKD_DIV1;
这篇关于STM32 | 超声波实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!