STM32 CubeIDE 超声波测距

将超声波测距模块与stm32连接配置其接口(PA10---PA11)

PA10是TIM1的通道3对应的GPIO口

在TIM1将时钟源设置为内部时钟源,将通道3设置为输入捕获直接模式(Input Capture direct mode)将通道4设置为输入捕获间接模式(Input Caputre indirect mode)。将定时器的预分频器设置为72分频使计数器的频率为1MHz。在输入捕获通道3默认保持上升沿检测,在输入捕获通道4修改为下降沿检测。

在NVIC设置开启TIM1捕获/比较中断

在时钟设置将主频改为72MHz

因为需要使用OLED屏幕显示测试距离所以需要打开I2C1

并且勾选为每个外设单独生成单独的.c/.h文件

将oled.c/.h font.c/.h 文件放入本次工程文件夹中

在输入捕获回调函数首先 if 一下进入中断的是不是定时器1,在判断一下触发回调函数的是不是通道4

成立则通过通道3捕获回波的上升沿时间与通道4捕获回声的下降沿时间计算距离并保存到distance中。

在main函数中初始化OLED函数 ,启动定时器计数,启动输入捕获通道3通道4函数

在while函数中首先触发超声波发射,然后重置定时器计数保证每次测距从0开始

最后在OLED显示频中将输入捕获回调函数计算的距离显示在OLED屏幕中。

相关推荐
BT-BOX8 小时前
第三章|新建STM32CubeMX工程生成keil工程和proteus联调仿真
stm32·嵌入式硬件·proteus
forAllforMe9 小时前
用STM32+LAN9252, 生成一个etherCAT 从机系统,实现数据采集功能
网络·stm32·嵌入式硬件
yezhailiaoke9 小时前
【CANoe测试系列】-程控电源控制
单片机·嵌入式硬件
-Springer-12 小时前
STM32 学习 —— 个人学习笔记9-2(USART串口数据包 & 串口收发 HEX 及 文本 数据包)
笔记·stm32·学习
白掰虾13 小时前
一分钟上手STM32CubeMX2——STM32C5点灯
stm32·单片机·嵌入式硬件·stm2cubemx2·stm32c5
YY_Share13 小时前
为什么笔记本电脑电源适配器基本是19V供电
嵌入式硬件·电路设计
宁静致远202114 小时前
Cadence Allegro 17.4的neck模式(瓶颈模式)走线
嵌入式硬件·硬件
逐步前行15 小时前
STM32_NVIC_中断控制
stm32·单片机·嵌入式硬件
Suifqwu15 小时前
stm32之移植MbedTLS以及算法实现
stm32·嵌入式硬件·算法
forAllforMe15 小时前
用STM32+LAN9252做etherCAT 运动控制从机方案
stm32·单片机·嵌入式硬件