2、机器人吸尘器
3.传感器用于节能(自动取款机,复印机,自动售货机)
4.游乐设备(机器人,街机游戏机)
三、OLED简介
篇幅有限,如果这方面不熟悉的朋友可以去看看本人的另一篇文章,十分相近,希望对您有所帮助。【强烈推荐】基于stm32的OLED各种显示实现(含动态图)_混分巨兽龙某某的博客-CSDN博客https://blog.csdn.net/black_sneak/article/details/125418537?spm=1001.2014.3001.5501
四、CubexMX配置
1、RCC配置外部高速晶振(精度更高)——HSE;
2、SYS配置:Debug设置成Serial Wire(否则可能导致芯片自锁);
3、ADC1配置:配置ADC-IN1模数转换——红外测距仪所用(PA1接Vo)。
4、 TIM2配置:设置定时器TIM2每1us向上计数一次,通道1为上升沿捕获并连接到超声波模块的ECHO引脚,记得开启定时器中断(涉及到捕获中断+定时器溢出中断)。
5、I2C2配置:作为OLED的通讯方式;
6、GPIO配置:PA5接到了HC-SR04的TRIG触发引脚,默认输出低电平
7、TIM1配置:由上面可知HC-SR04的使用需要us级的延迟函数,HAL库自带只有ms的,所以需要自己设计一个定时器;
8、时钟树配置:
注意:ADC的时钟频率不要过高,否则会影响精度(8~12Mhz)
9、工程配置
五、代码
5.1 超声波HC-SR04模块代码
其实,超声波HC-SR04的驱动就是基于GPIO口的调用。同时,由于超声波测距模块是基于超声波的物理性质,去进行距离测量,故此其精度受到很多因素影响。
**影响因素:**温度,传播介质及其物理属性等
本次实验就不进行超声波模块的精度补偿了,后面有空可以给大家出一个相关的文章。