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屏幕中。

相关推荐
不悔哥18 小时前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi201618 小时前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
优信电子20 小时前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
深圳老胡20 小时前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
wuyk55521 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
女神下凡21 小时前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
梅梅9661 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛1 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
从零开始的嵌入式之旅1 天前
day47
arm开发·经验分享·笔记·嵌入式硬件
恒锐丰科技林技术员1 天前
EG1164 高压大电流升压同步整流芯片解析
经验分享·嵌入式硬件·硬件工程