超声波模块用的是什么型号,如何接收超声波模块传过来的数据?
- 超声波模块采用的型号是 HC-SR04。
- 步骤:
- 首先stm32先向超声波模块发送启动信号(至少10us的高电平),超声波模块收到启动信号后会发送回8个40kgz的脉冲;
- 之后,当超声波碰到障碍物后会反弹,超声波模块接收到返回的超声波(即接收到信号)后会发送高电平,stm32根据高电平的持续时间算出超声波经过的路径,将该距离除以2后就得到了障碍物的距离。
- 测量高电平的持续时间采用的是定时器延时。该超声波模块的距离测量误差为 3mm,也就是测量精度为3mm。由于超声波传播的速度是340m/s,也就是 340 000 mm / 1 000 000us = 3mm / x us,可以算出来 x = 8.8, 即时间测量精度为8.8us,由于采用的是定时器延时来统计延长时间,定时器最小的延长时间为1us,为了减小测量误差,时间测量精度取 9us。
系统定时器是什么?你对系统定时器了解多少呢?系统定时器与普通的定时器有什么区别?
- 系统定时器也叫做systick定时器,滴答定时器,内嵌在NVIC中,用于产生systick异常,即可以触发中断,功能是实现简单的延时。
- 系统定时器在Cortex M3/M4 内核中都存在,方便用户在使用不用类型的芯片的时候进行移植;在配置系统定时器时,需要选择时钟源,可选外部时钟源和内部时钟源;系统定时器要实现延时功能可采取两种方法:中断延时和非中断延时。在中断延时设置过程中,由于systick内嵌在NVIC中,所以不需要进行NVIC配置;在非中断延时设置过程中,直接配置系统定时器的相关寄存器的初始值、计数值等相关参数,然后在while循环里面等待systick计数完毕。
- 系统定时器只能采用向下计数,普通定时器可采用向上或向下计数;系统定时器功能单一,只是实现简单的延时,而普通的定时器根据种类不同,可实现多种功能,如延时、输出比较、PWM生成等。
|