当前位置: 首页 > news >正文

网站建设与网页制作基础入门教程营销广告网站

网站建设与网页制作基础入门教程,营销广告网站,网站仿制教程,日本做爰动漫网站1、模块介绍 型号:HC-SR04 超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度, 计算出模块到前方障碍物的距离。 2、超声波模块的使用方法 怎么让它发送波 Trig ,给Trig端口至…

1、模块介绍

型号:HC-SR04

 超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度, 计算出模块到前方障碍物的距离。

 2、超声波模块的使用方法

  • 怎么让它发送波

        Trig ,给Trig端口至少10us的高电平

  • 怎么知道它开始发了

        Echo信号,由低电平跳转到高电平,表示开始发送波

  • 怎么知道接收了返回波

        Echo,由高电平跳转回低电平,表示波回来了

  • 怎么算时间

        Echo引脚维持高电平的时间!

        波发出去的那一下,开始启动定时器

        波回来的拿一下,我们开始停止定时器,计算出中间经过多少时间

  • 怎么算距离

        距离 = 速度 (340m/s* 时间/2

3、 超声波时序图

4、编程实现

需求:使用超声波测距,当手离传感器距离小于5cm时,LED1点亮,否则保持不亮状态。

codeMX配置

 定时器配置:使用 TIM2 ,只用作计数功能,不用作定时。 将 PSC 配置为71,则计数 1 次代表 1us

这里因为涉及到us级的延时,而我们的HAL_Delay()延迟函数时ms级别的所以在这里用不了。需要我们使用定时器编写一个us级的延时函数

使用到的HAL库函数

1.启用TIM外设(启动定时器计数)

__HAL_TIM_ENABLE(__HANDLE__)  

参数:定时器的句柄

2.在运行时设置TIM计数器寄存器值(设置计数器的值)

#define __HAL_TIM_SetCounter            __HAL_TIM_SET_COUNTER

#define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) 

参数1:定时器的句柄

参数2:指定计数器寄存器的新值

3.在运行时获取TIM计数器寄存器值

#define __HAL_TIM_GetCounter            __HAL_TIM_GET_COUNTER

#define __HAL_TIM_GET_COUNTER(__HANDLE__)

参数:定时器的句柄

返回值:计时器计数器寄存器的值 (TIMx_CNT)

4.禁用TIM外设(关闭定时器计数)

#define __HAL_TIM_DISABLE(__HANDLE__)

参数:定时器的句柄

5.启动TIM Base生成(启动定时器)

HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)

参数:定时器的句柄

6.停止生成TIM Base。(停止定时器)

HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)

参数:定时器的句柄

__HAL_TIM_ENABLE(&htim2)与 HAL_TIM_Base_Start(&htim2)两个库函数有什么区别

代码实现

延时函数代码:

//使用TIM2来做us级延时函数
void TIM2_Delay_us(uint16_t n_us)
{/* 使能定时器2计数 */__HAL_TIM_ENABLE(&htim2);__HAL_TIM_SetCounter(&htim2, 0);while(__HAL_TIM_GetCounter(&htim2) < ((1 * n_us)-1) );/* 关闭定时器2计数 */__HAL_TIM_DISABLE(&htim2);
}

main函数里面的代码

  while (1){//1. Trig ,给Trig端口至少10us的高电平HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET);TIM2_Delay_us(20);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET);//2. echo由低电平跳转到高电平,表示开始发送波while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_RESET);//波发出去的那一下,开始启动定时器HAL_TIM_Base_Start(&htim2);__HAL_TIM_SetCounter(&htim2,0);//测量之前先把次数置零//3. 由高电平跳转回低电平,表示波回来了while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_SET);//波回来的那一下,我们开始停止定时器HAL_TIM_Base_Stop(&htim2);//4. 计算出中间经过多少时间count = __HAL_TIM_GetCounter(&htim2);//获取次数dis = (0.017 * count) / 2;//5. 距离 = 速度 (340m/s)* 时间/2(计数1次表示1us)if(dis < 10){HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);HAL_Delay(1000);}else{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);}//每500毫秒测试一次距离HAL_Delay(500);}
http://www.zhongyajixie.com/news/54844.html

相关文章:

  • 如何做免费域名网站昆山网站建设公司
  • 莞城网站仿做seo网站优化培训要多少钱
  • 网站代码编辑器志鸿优化网
  • 门户网站开发投标文件.doc微信搜一搜怎么做推广
  • 优化推广排名网站教程重庆整站seo
  • 张家界旅游网站官网b2b网站推广排名
  • 巢湖做网站seo网站优化平台
  • 邵阳整站优化网易游戏推广代理加盟
  • 大淘客联盟做网站石家庄网站建设方案优化
  • 手机版做我女朋友网站常州网站建设书生商友
  • 网站建设维护学什么九幺seo优化神器
  • 北京网站建设公司房山华网怎么注册网站平台
  • 网站建设人员配置竞价推广是什么工作
  • 网页设计和网站设计武汉 网络 推广
  • 制作网页网站项目介绍舆情网站直接打开怎么弄
  • b2c购物商城网站建设亚洲7号卫星电视
  • html网站登陆注册怎么做可以免费发外链的论坛
  • php网站 源码品牌软文营销案例
  • 做网站设计的公司排名seo外链是什么
  • 网站怎么后台登陆职业技能培训网上平台
  • 网站建设 业务员百度关键词推广网站
  • 便宜建站优化关键词的公司
  • 深圳网站建设官网网络营销怎么推广
  • 深圳住房和建设局网站统一滨州seo排名
  • 快速网站排名seo入门基础知识
  • 网站收银系统建设网络营销的渠道
  • 武汉 大型 网站建设下载优化大师安装桌面
  • 新余做网站的营销软文200字
  • wordpress整站数据转移推广竞价的公司有哪些
  • 深圳网站建设服务器公司如何制作自己的网址