实验材料准备
1个HC-SR04超声波模块
1台STM32F103ZET6开发板
若干杜邦线
HC-SR04模块简介
STM32定时器设置
实验中接收发送信号都用定时器,方便管理
上表在《STM32中文参考手册_V10》第119页,实验中产生PWM输出使用TIM_CH1完全重映射,输出IO口为PC6。
上表在《STM32F103ZET6芯片手册》第31页,当PA1配置为输入模式,TIM_CH2使能输入捕获时就能获取到PA1输入的信号
PWM输出配置
超声波模块触发信号需要大于10us的高电平,预先设定获取超声波传来信号的周期为500ms,需要将PWM信号的周期也设为500ms
实现500ms有多种设置方式,为了输出大于10us也不太长的高电平信号,arr设置为39999,psc设置为899,代入上式计算得T=0.5,也就是500ms
之后设置占空比:
定时器现在装载值最大为40000,对应时间为500ms=500000us,当占空比为2时,2*500000/40000为25us左右
输入捕获配置
输入捕获配置参考正点原子《实验10 输入捕获实验》部分
验证输入输出
将STM32板子的PA1和PC6连接并将捕获的结果打印至串口,得出如下图
22us和23us左右,满足大于10us的要求。
转换公式
设捕获的时间为t,距离为s
则公式为
其中t单位为秒(s),s单位为厘米(cm)
实验结果
测距对象最好选择平面物体,不然会出现测距不准的情况。
源码链接
链接:https://pan.baidu.com/s/1P1ZZkkj_o5S4IQbYtU1VEA
提取码:skap
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享