发新帖本帖赏金 300.00元(功能说明)我要提问
返回列表
[APM32F1]

极海国产芯|APM32F103VBT6开发板—驱动超声波HC-SR04测距

[复制链接]
739|16
手机看帖
扫描二维码
随时随地手机跟帖
至圣者|  楼主 | 2022-10-27 13:21 | 显示全部楼层 |阅读模式
本帖最后由 至圣者 于 2022-10-27 13:28 编辑

#申请开发板# #有奖活动# #技术资源# #申请原创#
前言
32单片机在之前的学习中并未接触过,APM32单片机是我接触的第一款cotex内核的单片机,同时为了锻炼快速上手一款单片机的能力,申请APM32f103Mini开发板挂载超声波HC-SR04模块进行程序编写调试。
0开发环境搭建开发环境采用Arm-MDK5.33版本,烧录工具为ST-Link,利用外接的usb-ttl CH340G模块将超声波测距数据利用串口上传到电脑便于调试分析。超声波模块固有排针引出的四个接口,依次为VCC Trig(触发端) Echo(接收端) GND,与开发板的接线为Vcc接5v供电,GND接GND,Trig接PA4,Echo接PA5。至此硬件电路配置完成接下来结合几张图讲述工程模板搭建过程。
首先在官网下载APM32F103单片机的固件库(SDK文件)以及keil的pack支持包
图1 QQ截图20221026205501.png
安装pack支持包。
不需要新建keil工程整体创建工程模板。创建模板采用官方文件配置。只需调整文件夹改变后的路径。重新链接到正确路径编译成功一个工程即可。这里创建工程模板以官方的GPIO例程为例
图2 图2.png
将example下的GPIO例程复制到新的工程文件夹内。这里配置如下。复制后改名为相应的工程名称。我这里是USART_Print。同时将需要的其他文件的文件夹Board以及Libraries同时转移。此时文件移动部分结束
图3 图3.png
接下来打开已经转移好的keil工程文件
图4 图4.png
可以看到project文件配置全部有误。文件路径导入不正确。
图5 图5.png
将上述头文件路径依次重新设置为工程文件夹下的文件路径
图6 图6.png
在上述图标下将project中展示的有问题的文件重新删除添加,完成后文件叹号标识消失。工程可正常编译如下所示
图7 图7.png
1测距原理及单片机资源分析
图8 图8.png
HC-SR04模块超声波测距原理主要依据上图。具体驱动流程为。Trig触发端发出10us以上的触发信号。同时模块内部随即循环发出8个40kHz的脉冲。接着在Echo接收端产生回响高电平。回响高电平时长与输出检测到的距离成正比。
根据超声波原理分析可知单片机使用的资源大致如下。两个定时器。一个用于设定循环测距间隔。另一个用于单次测距内回波反馈过长进行调整。两个GPIO口。一个用于触发信号发射。另一个用于回响电平接收。一个串口。将测距数据不断上传到电脑上。
2实物调试检验
程序编写通过。超声波测距驱动完成后。接着通过示波器+ST-Link硬件仿真对波形高电平时长进行观察。将两者得到的结果对比验证超声波工作
此图为示波器在触发电平2.5V下。得到的PA4发射端电平图像,由图像可知高电平持续时间为10.44us
图9 图9.png
在keil中硬件仿真计算得到的实际波形延时时间
图10 图10.png
两者基本接近。触发端触发电平无误
再附上当测距稳定在33cm时,触发电平2.5V触发得到的回响电平图像。回响电平持续时间为1.948ms
图11 图11.png
3问题分析
实际调试中遇到的最大阻碍是GPIO端口读取位数据或置位数据。最开始编写代码时没有采用gpio.c中的函数。而是利用apm32f10.h中的端口寄存器调用宏定义
图12 图12.png
用上述宏定义调用导致测距功能一直无法调试成功。最后还是采用库函数的GPIO调用后程序调通
工程文件在文章附件中。大家可以下载学习交流
结尾附上开发板的实物接线图。以及超声波稳定测距时串口反馈的数据
图13.png 图14.png

USART+超声波例程.zip

1.64 MB

使用特权

评论回复

打赏榜单

Gfan 打赏了 300.00 元 2022-12-05
理由:恭喜获得极海国产芯悬赏贴活动的“热门国产芯文创作人”称号,感谢您的支持,期待下次的干货分享哦!

kai迪皮| | 2022-10-27 23:35 | 显示全部楼层
点赞

使用特权

评论回复
uytyu| | 2023-2-4 18:00 | 显示全部楼层
最大的测量范围是多少?              

使用特权

评论回复
minzisc| | 2023-2-4 19:40 | 显示全部楼层
这个APM32F103VBT怎么实现测量HC-SR04测距?·

使用特权

评论回复
sdlls| | 2023-2-5 14:27 | 显示全部楼层
HC-SR04超声波测距 程序怎么写  

使用特权

评论回复
ingramward| | 2023-2-6 14:48 | 显示全部楼层
HC-SR04使用的是定时器的吗?

使用特权

评论回复
caigang13| | 2023-2-6 15:16 | 显示全部楼层
这种超声波测距用的很少了吧

使用特权

评论回复
benjaminka| | 2023-2-6 16:39 | 显示全部楼层
来一个HC-SR04 超声波测距模块 DEMO 程序。

使用特权

评论回复
10299823| | 2023-2-7 19:56 | 显示全部楼层
超声波测距模块HC-SR04 最远距离是多少

使用特权

评论回复
tifmill| | 2023-2-7 20:17 | 显示全部楼层
感觉HC-SR04的性能比激光测距差远了。

使用特权

评论回复
deliahouse887| | 2023-2-7 20:23 | 显示全部楼层
为什么我的HC-SR04超声波测距只能测到1m左右

使用特权

评论回复
fengm| | 2023-2-7 20:37 | 显示全部楼层
APM32F103VBT6的性能怎么样?

使用特权

评论回复
robincotton| | 2023-2-7 20:56 | 显示全部楼层
HC-SR04超声波测距计算距离公式求解  

使用特权

评论回复
macpherson| | 2023-2-7 21:45 | 显示全部楼层
hc-sr04测距,测一段时间(时间不定)就死机,是什么原因

使用特权

评论回复
wengh2016| | 2023-2-8 14:59 | 显示全部楼层
这个HC-SR04使用的捕获功能实现的 吗?

使用特权

评论回复
qiufengsd| | 2023-2-8 17:19 | 显示全部楼层
如何使用温度修正测量的距离呢?              

使用特权

评论回复
maqianqu| | 2023-2-8 19:07 | 显示全部楼层
Proteus仿真超声波测距.用什么模拟HC-SR04好  

使用特权

评论回复
发新帖 本帖赏金 300.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝