标题: STM32超声波测距的计算问题 [打印本页]

作者: nimab    时间: 2020-5-25 13:49
标题: STM32超声波测距的计算问题
请问一下大家,我用超声波模块测距,超声波模块是HC_SR04,但是我在计算距离有点问题请教大家,get counter获得的值不是要除以1000 000吗(转换成秒)再乘340/2得到距离吗,为什么我的程序除以1000 000通过串口打印的是0,改成除以100就可以,而且为什么我测出来的值是整数的?
我是STM32F103RCT6的。

51hei图片_20200525134343.png (33.97 KB, 下载次数: 40)

主函数

主函数

51hei图片_20200525134359.png (71.4 KB, 下载次数: 42)

超声波模块函数

超声波模块函数

51hei图片_20200525135110.png (53.37 KB, 下载次数: 40)

配置定时器

配置定时器

project.7z

185.02 KB, 下载次数: 13

这是工程文件


作者: 大长虫    时间: 2020-5-25 16:07
你这个是求余,试试先把乘法放在前面;并且先不考虑单位问题,看看能不能出现想要的数字
作者: 丶念    时间: 2020-5-25 19:49
你定义没问题吧?int类型最大为65536   char为255
作者: MGJSW    时间: 2020-5-26 15:00
定义 n,T,V,X;
n:计数个数
T:定时器计时时间 50(ms)=0.05(s)
V:声速 340(m/s)
X:位移  (距离)
公式:n*T*V/2=X     //声波有来回,时间除以2  return TIM_GetCounter(TIM2)*0.05*34000(cm/s)/2




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1