分享一篇我刚刚弄完的一个超声波模块的学习

超声波模块的介绍:

1.单片机的一个IO口发送高电平的信号给Trig,信号时间要大于10us
2.然后模块的内部会发送方波
3.然后Echo会给单片机的IO口发送高电平,这个高电平持续的时间是超声波模块从碰到物体再返回的时间

模块的连接问题

我使用的是CH340G模块与电脑进行通信

编程思路:

1、先需要去配置定时器(基本定时器也可以,我用的是TIM2),还有串口的配置,还有延时函数的配置(推荐大家使用systick定时器)因为比较精准
2、基本的配置好了下面就要去写程序了
先随便定义两个IO口,连接Trig的IO口配置要推挽输出,连接Echo的IO口要浮空输入。
3、我看好多大神写的程序都是给Trig一个超过10us的高电平的时候进行了位操作和51很像,是定义在了sys.h这个头文件里。其实这个位操作在keil5中我没有看到有sys.h这个头文件,其实没有咱们也可以用STM32中的库函数去代替
4、给Trig发送高电平可以直接用GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);函数
5、检测Echo传给IO口的高电平时使用
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);函数
这个函数的说明是读取他输入的这个位的值
6、然后给Trig高电平超过10us然后在置低,然后等待Echo连接的IO口为高电平的时候开始打开定时器,开始计数,等待Echo连接的IO口为低电平的时候在关闭定时器,时间的确定就需要去定义一个全局变量msHcCount来记录定时器溢出的次数。定时器时间的计算是在你配置好了重装在计数器的值和时钟的分频以后 定时器记录的总时间=中断溢出次数*(时钟分频+1)/系统时钟*(重装载计数器的值+1)+一个库函数uint16_t TIM_GetCounter(TIM_TypeDef* TIMx);这个库函数是记录的时间是当不满足溢出一次次数的时候剩余的值(因为如果假设你设置的重装载寄存器的值是999,到990的时候如果此时信号高电平停止,那么这个时间你就不知道是多少了,因为他不满足定时器一次的溢出情况,就需要这个函数来把剩余的时间算出来)
时间计算和好了以后,为低电平关闭定时器,然后时间有了你就可以通过公式算出距离了。

程序我下一篇会发

STM32单片机 关于超声波模块的学习(1)相关推荐

  1. STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建

    事物的难度远远低于对事物的恐惧 完成对STM32单片机和ESP8266 WiFi模块的配置之后,接下来需要完成Android APP代码的编写以及实现. 1.添加网络权限 因为我们需要对WiFi进行操 ...

  2. STM32单片机与蓝牙模块HC-05通信数据帧处理

    本章将会详细讲述蓝牙模块(HC-05)和STM32单片机之间的通信收发的数据如何处理,在测试开始前首先在手机上下载好一个蓝牙调试APP,此APP可以是手机端和PC端口的,以我常用的手机端的为例. 在配 ...

  3. 基于stm32单片机的超声波测距显示倒车雷达提醒报警系统Proteus仿真

    资料编号:145   下面是相关功能视频演示: 145-基于stm32单片机的超声波测距显示倒车雷达提醒报警系统Proteus仿真(源码+原理图+仿真+论文) 设计内容 本次嵌入式课程设计综合实验的内 ...

  4. STM32单片机中WIFI模块数据传输问题(float->u32->u8/u8->u32->float)

    STM32单片机中WIFI模块数据传输问题(float->u32->u8/u8->u32->float)   最近在做毕业设计,在做wifi数据传输与接收时,涉及到了STM32 ...

  5. 用8266学习单片机-13-HC-SR04超声波模块测距示例-Ultrasonic-US-015

    HC-SR04原理 重点 5v供电.Tri引脚需要至少10us的高脉冲去触发.Echo返回的是超声波发射到返回的时间 距离怎么算看上面第三张图,US-015原理相似,注意测量范围最小值和最大值 接线 ...

  6. STM32驱动HC-SR04超声波模块

    STM32学习笔记--HC-SR04超声波测距模块 碰巧学校老师要求做个HC-SR04超声波的实验,笔者在完成实验报告的同时,也顺带完成一篇STM32驱动超声波模块记录. HC-SR04模块使用 ST ...

  7. 基于STM32单片机与wifi模块串口结合进行PC端或手机端无线通信(附项目资料包)

    项目所需材料: stm32f103系列最小系统开发板一块. WiFi模块. 具有WiFi功能的手机及PC机. 达普电池一包(或者学生电源一台).. 1k电阻4个,杜邦线若干. 一.硬件环境搭建 1.1 ...

  8. 【STC15单片机】 超声波模块的使用

    目录 1 基于STC15F2K60S2的超声波测距代码 1.1 基本注意事项 1.1.1 跳线帽接法 1.1.2 晶振设置 1.2 板载超声波工作原理 1.2.1 原理总结 1.2.2 超声波代码思路 ...

  9. 【蓝桥杯单片机】超声波模块(测距原理,驱动方式)

    实验开发板为CT107D蓝桥官方板,编译环境为MDK5 超声波探头测距原理: 发射头发射超声波,遇到障碍物后返回,接收探头接受到返回信号. 两个动作产生的时间差可以是我们根据声音在空气中传播的速度来( ...

最新文章

  1. RuntimeError: Assertion cur_target 0 cur_target n_classes failed
  2. 如何在 5 分钟内建立一个数据驱动的新型冠状病毒肺炎应用程序
  3. CubieBoard 简单入门
  4. Java JDK安装和配置
  5. Layer弹出层关闭后刷新父页面
  6. Mariadb /MySQL max_allowed_packet设置及问题
  7. Base64加密处理
  8. linux操作系统期末考试试题及答案,Linux操作系统期末复习题(含答案).doc
  9. 51单片机入门之点阵
  10. 一种可信万兆加密分流认证装置研究
  11. flac音乐格式怎么转换mp3?
  12. ajax向后台传递参数为对象实例
  13. layui设置td宽度_layui静态表格固定td宽度,table固定td宽度
  14. 【OSX】MAC下能用的炒股软件
  15. 微信支付-本地测试方法-java代码
  16. 注册IMDB的API KEY
  17. hdf5 matlab,hdf5格式的matlab读写操作
  18. .NET北京俱乐部,技术的饕餮盛宴,不枉此行
  19. 相干解调与非相干解调
  20. 高精度乘法(正负数皆可(Bull Math)POJ)

热门文章

  1. 图集谷-写真集-爬虫-1.0
  2. 量化交易入门书籍推荐
  3. php中asp标签怎么打开新页面,A标签新窗口打开怎么设置
  4. Docker 问题集锦(15) - ERROR: for * Cannot start service *: driver failed programming external
  5. 应用统计学大数据方向报名自述_应用统计学与应用统计学大数据方向有什么区别?哪..._统计师_帮考网...
  6. coreldraw梯形校正_CorelDRAWX6图形图像设计章节复习试题(大学期末复习资料).docx
  7. 数码技术进入服装产业
  8. 十进制数转换成十六进制数~C语言
  9. Zblog如何使用PHP插件搭建微信小程序-从0到100完整教程
  10. 交叉编译工具链使用提示No such file or directory