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

礼品网站制作模板网站和定制网站的区别

礼品网站制作,模板网站和定制网站的区别,wordpress更改php版本,WordPress搭建流媒体网站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.yayakq.cn/news/124681/

相关文章:

  • 安阳哪里有做网站的wordpress在线制作
  • 重庆旅游seo整站优化dede小视频网站源码
  • 买完域名后怎么做网站自助商城
  • 智能建站公司网站流量怎么挣钱
  • 做网站不用tomcat行吗做公众号文章的网站
  • wordpress网站vip可看线上推广员是干什么的
  • 苏州网站建设哪里好开发网站的申请怎么写
  • seo网站推广优化就找微源优化wordpress微信登录插件下载
  • 网站建设推广软件华润置地建设事业部网站
  • 浙江网站建设外贸凯里建设局网站
  • 推荐一个免费的网站向google提交网站
  • 推荐的网站wordpress 主题黑
  • 做门户网站要多少钱番禺网站制作多少钱
  • 上海微信网站公司哪家好扬州网站建设myvodo
  • 合肥网站快速优化排名菲律宾 网站开发公司
  • 网站开发建设推荐网页制作软件dw与python软件对比
  • 关于做无机化学实验的网站宝应网站
  • 龙岩网站设计制作wordpress cdn无作用
  • 高端品牌网站开发iis 5 如何添加网站
  • 微网站的特点一个小程序一年的费用是多少
  • 网站标题采集建设部职称证书查询官方网站
  • 做网站建设销售辛苦吗密云新闻 今天 最新
  • 天津企业网站开发wordpress payjs
  • 查询公司水利平台网站在菲做平台网站
  • 手机网站建设代理商佛山新网站建设方案
  • 免费建网站的平台手机网站与pc网站同步
  • 有必要自建网站做导购吗WordPress对接易支付
  • 旅游网站的建设与应用我做钓鱼网站自首了
  • 网站建设考虑因素网站建设下一步工作计划
  • 如何做电子商务网站武义县网站制作