这次由于抽空调式了一阵超声波模块US-015,从一些大神那里下了代码进行了改编,得出了stm32Mini板的测试程序。下面我讲解几点注意的事项:
程序用到的外设主要有:USART1, TIM2, TIM3等。
因为我自己也看过数据手册,对其计算距离的公式也进行了一次推导,发现好像没什么问题,但是用串口打印出来的数据单位却好像是cm;
而且似乎也不能测得很远,我觉得有效范围也就40cm左右。如果诸位有更好的方法或程序,还望指点分享一二!!!
好了,先这样,感谢阅读!
资料如下:
超声波测距.7z
(5.08 MB, 下载次数: 98)
单片机源程序如下:
- #include "sys.h"
- #include "led.h"
- #include "delay.h"
- #include "usart.h"
- #include "uw.h"
- float distance;
- int main()
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- CH_SR04_Init();
- led_init();
- uart_init(115200);
- delay_init();
- LED1=1;
- while(1)
- {
- distance=Senor_Using();
- printf("距离为:%f cm\n",distance);
- //printf("距离为:%f cm\n",Senor_Using());
- if(distance>20)
- LED0=~LED0;
- LED1=~LED1;
- delay_ms(100);
- }
- }
复制代码
|