注意:定义GPIOB2为超声输出;GPIOB10为输入,定时器用tim2
///////////////////////////////////////////////////.CPP文件/////////////////////////////////////////////////////
#include "HCSR04.h"
#include "delay.h"
#include "sys.h"
int overcount;
float length=0;
void HCSR04_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructer;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
TIM_DeInit(TIM2);
TIM_TimeBaseInitStructer.TIM_Period=4999;
TIM_TimeBaseInitStructer.TIM_Prescaler=7199;
TIM_TimeBaseInitStructer.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStructer.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructer);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_ITConfig(
TIM2,
TIM_IT_Update |
TIM_IT_Trigger,
ENABLE
);
TIM_ClearFlag(TIM2,TIM_FLAG_Update);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM2,DISABLE);
}
float HCSR04_Read()
{
float sum=0,length1=0;
u8 i=0,j=0;
u16 tim;
{
// while(i!=5)
for(i=0;i<5;i++)
{
PBout(2)=1;
delay_us(20);
PBout(2)=0;
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==RESET);
TIM_SetCounter(TIM2,0);
TIM_Cmd(TIM2,ENABLE);
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==SET);
TIM_Cmd(TIM2,DISABLE);
tim=TIM2->CNT;
length1=tim/58.0*100;
TIM2->CNT=0;
sum+=length1;
}
}
length=sum/5;
sum=0;
return length;
}
///////////////////////////////////////////////////.h文件//////////////////////////////////////////////////////////////////
#include "stm32f10x_lib.h"
#define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //Êä³ö
#define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //ÊäÈë
extern float HCSR04_Read();
extern void HCSR04_init();
//extern void HC_RS04_Init();
关键字:STM32F103CB 超声波 HCSR04
引用地址:
STM32F103CB控制超声波HCSR04可用程序
推荐阅读最新更新时间:2024-03-16 15:37
超声波探伤仪探头大全
超声波探伤仪探头进行垂直探伤用的单晶片探头,主要用于纵波探伤。直探头由插座、外壳、保护膜、压电晶片、吸声材料等组成。 探头接触面为可更换的软膜,用于检测表面粗糙的工件。 超声波探伤仪斜探头 进行斜射探伤用的探头,主要用于横波探伤。斜探头由斜块、压电晶片、吸声材料、外壳、插座等组成。 超声波的发射/接收由压电晶片完成; 斜块的作用是实现波型的转换,当入射角( )在第一临界角和第二临界角之间时,根据超声波在不同声阻抗界面的折射定律,工件中只有横波的存在;吸声材料用来吸收晶片背面、斜块四周发散的噪声;外壳起到支撑、保护、电磁屏蔽等作用;插座为电信号接口,通过探头线连接到仪器。斜探头折射角的大小通过K 值来标明。
[测试测量]
Samplify Systems发布第二代超声波束合成开发系统
中国国际医疗电子展(CMEF) - Samplify Systems 公司,一家专注于超声工业方面提供创新的半导体产品,模块产品和子系统的技术型公司,今天发布了它的第二代波束合成开发系统,即 SMK9130-A2。 除了提升了硬件的性能,SMK9130-A2还包含了公司最新版本的超声应用编程接口(API),即SUAPI2.0。Samplify 公司的API是对硬件系统的抽象,客户可用它很快地开发他们后端的处理软件,同时保证即使以后硬件升级到下一代产品,后端处理软件依然可以重复利用,不会造成软件开发方面的投入损失。Samplify 公司在福州举行的从2011年10月31日到11月3日的中国医疗电子展上将展出SMK9130-A2系统
[医疗电子]
Fluke ii900超声波局放成像仪在高压电气设备局部放电中的应用
局部放电是高压电气设备经常会遇到的问题, 会造成电气设备损坏甚至危及人员安全,而现有检测手段非常耗时且有漏检可能;最新的声学成像技术将局部放电的单点检测变为图像排查,快速、准确。通过福禄克最新的ii900超声波局放成像仪检测高压电气设备接头局部放电的案例和技术要点,帮助电气维护人员对局部放电进行及时排查和处理,保证电气设备的正常运行。 高压电气设备局部放电的危害: 局部放电是电力设备绝缘在足够强的电场作用下局部范围内发生的放电,每一次局部放电对绝缘介质都会有一些影响,使绝缘强度下降。造成高压电力设备绝缘损坏,甚至会造成人安全隐患。因此电力设备检修人员需要对运行中的高压电气设备做局部放电检测,发现问题点后应及时将设备退出运行,进
[测试测量]
夏普发布了手持式洗衣机 每分钟可震动38000次
对于常有差旅的人来说,最麻烦的恐怕就是带了一堆干净衣服出门,然后又带了一堆脏衣服回家。不仅是因为在外不方便洗衣服,当然也因为未必所有的酒店都提供洗衣服务。所以近些年市面上也出现了一种便携式手持洗衣机,近日,夏普就推出了新款超声波洗衣机 UW-A1,用来填补洗衣机和手洗之间的需求空挡。
据称,夏普此次推出的手持洗衣机,核心参数在于每分钟38000次的快速震动,可在衣物纤维缝隙中产生微小气泡,将污垢、汗渍有效去除。相比较手洗,能够更加精准地清晰类似于衣襟、袖口这样的边角部位,而使用起来也非常简单,仅需要将待洗衣物浸泡,在水中用机身的头部在需要清晰的部位轻轻移动即可。
此外,由于夏普UW-A1采用了
[家用电子]
TI推出更精确的智能水表单芯片超声波感应微控制器
德州仪器(TI)近日推出全新系列的MSP430™微控制器(MCU),该系列控制器带有集成超声波感应模拟前端,能够提高智能水表的精度并降低其能耗。此外,TI还推出两款新型参考设计,可以更轻松地设计模块,为现有机械水表新增自动抄表功能(AMR)。 目前,市场对更精确的水表和远程抄表的需求日益增长,而新型MCU和参考设计可为此提供相应支持,以实现高效的水资源管理、准确测量和及时计费。 更智能而精准的流量感应 作为用于感应和测量的超低功耗 MSP430 MCU产品组合 的一部分,新型 MSP430FR6047 MCU系列使开发人员能够利用完整的波形捕获功能和基于模数转换器(ADC)的信号处理,为流量计增加更多智能特性。相较于竞
[物联网]
MaxBotix系列超声波传感器在车内检测中的应用
随着时代的发展,车辆变成了家庭的必备交通工具。外面各型各色的汽车中,或许只有驾驶员一人,或许有一家老小,或许后排还有个小朋友在睁大眼睛看着“移动中的世界”,或者宠物透过玻璃窗户再跟周围的行人“打招呼”。然而,即使如今的汽车技术越来越先进,也加入了诸多安全技术。但,却不能驾驶员的记忆力。驾驶员遗忘后排的老人、儿童、宠物的事件依旧不断发生着。 据有关报告显示,自1998年以来,美国已有超过800名儿童死于车内中暑。大概平均每年有38名儿童被困于车辆内而亡,并与高温有关。在2018年,这一死亡数据达到52人。据不安全统计,在中国,2010年到2015年之间,至少发生20起儿童被遗忘在车内的事件,事件不只是发生于私家车,也发生在校车内
[汽车电子]
超声波角度传感器全球市场报告概述
据外媒报道,全球超声波角度位置传感器(global ultrasonic corner sensor)市场主要受到汽车业的驱动,超声波角度位置系统可确保停车的安全性、精准性及便捷性,还能探查到车辆附近的目标物,避免车辆损毁或发生碰撞事故。 然而,该类传感器的系统成本、维护成本及安装等因素影响了该类传感器的市场需求,最主要的原因在于:只有点火开关处于开启状态时,才能启用该类传感器。 从市场份额角度看,超声波角度位置传感器在汽车细分市场内的应用占到主导地位。车辆采用的超声波障碍物探查系统则需要配置角度传感器。汽车领域的安全性等级取决于其所安装的传感器种类及所能提供的安全级别。据估计,2017-2027年,全球超声波角度位置传感器的前
[汽车电子]
基于DSP和模糊逻辑技术的超声波干扰探测器US0012
摘要:US0012是一种基于数字信号处理器和模糊逻辑技术的高性能智能化超声波干扰探测器集成电路。它具有价格低、适用面广、便于安装等优点,可广泛用于车辆内部的安全系统。文中介绍了US0012的主要特点和功能原理,给出了US0012的典型应用电路及其连接方法。
关键词:超声波;干扰探测器;干扰识别;报警;US0012
1 主要特性
US0012是一种采用CMOS工艺制成的超声波干扰探测器信号处理专用集成电路,它兼有干扰探测、干扰识别和干扰报警三大功能。其主要性能特点如下:
(1)内含超声波发送与接收电路、模拟信号处理器、数字信号处理器(DSP)、基于模糊逻辑技术(Fuzzy-Logic Techniques,简称FLT)的鉴相
[嵌入式]