51单片机hc-sr04超声波模块控制的c语言编程,基于STM32单片机对HCSR04超声波的控制...
描述
注意:定义GPIOB2为超声输出;GPIOB10为输入,定时器用tim2
#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) //ê?3?
#define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //ê?è?
extern float HCSR04_Read();
extern void HCSR04_init();
//extern void HC_RS04_Init();
打开APP精彩内容
点击阅读全文
51单片机hc-sr04超声波模块控制的c语言编程,基于STM32单片机对HCSR04超声波的控制...相关推荐
- GSM/GPRS模块 AT指令集C语言编程——基于有方M660+和MSP430单片机
GSM/GPRS芯片是手机中负责收发短信.拨打电话以及访问GPRS网络的核心器件.有方M660+为深圳有方公司生产的一款超小封装的GSM/GPRS工业无线模块,可以提供高品质的语音.短信.数据业务等功 ...
- c51的八位智力抢答器C语言编程,基于AT89C51单片机的八位智力抢答器设计.doc
基于AT89C51单片机的八位智力抢答器设计 江 西 理 工 大 学 南 昌 校 区 毕 业 设 计(论文) 题 目:八位智力抢答器 系 :信息工程系 专 业:应用电子技术 班 级: 学 生: 学 号 ...
- 变频调速系统c语言编程,基于8098单片机的SPWM变频调速系统
数字控制的交流调速系统所选用的微处理器.功率器件及产生PWM波的方法是影响交流调速系统性能好坏的直接因素.在介绍了正弦脉宽调制(SPWM)技术的基础上,设计了一种以8098单片机作为控制器,以智能功率 ...
- 感应门铃的c语言程序,基于STM32单片机智能门禁门铃热释人体感应光照报警+RFID门禁电磁锁设计-(原理图+程序源码)...
视频:https://v.youku.com/v_show/id_XNDc2NDMwNDQzMg==.html?spm=a2hzp.8253869.0.0 2018-644.STM32成品+RFID设 ...
- 基于单片机串口远程多路温湿度采集仿真-基于单片机ADC0809八路电压采集系统设计-基于单片机16x32点阵多模式显示仿真设计-基于单片机餐厅呼叫控制系统仿真设计-基于STM32单片机的智能水杯设计
1220基于单片机ADC0809八路电压采集系统设计-毕设课设资料 数码管显示,测量八路电压表. #define addo (5.0/255.0) #define zero 0.005 //用于校准A ...
- 基于STM32单片机智能RFID刷卡汽车位锁设计(论文
基于STM32单片机智能RFID刷卡汽车位锁设计(论文) 摘要 在车位日益紧张的今天,如何避免私家车位被他人抢占,是令人头痛的事.日前面市的一种新型车位锁,不仅有效解决了这一问题,还可对车辆起到防盗作 ...
- 基于STM32单片机智能蓝牙PWM温控风扇带定时APP控制
实践制作DIY- GC0009-智能蓝牙PWM温控风扇 一.功能说明: 基于STM32单片机设计-智能蓝牙PWM温控风扇 功能介绍: 1.基于STM32F103C系列,OLED,DHT11温度湿度传感 ...
- 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计
1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告) 摘 要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...
- 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)
本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...
最新文章
- kepserver 6.5_非凡说| 先定一个6.5分小目标,财大生如何突破瓶颈拿下雅思!
- 自动化测试框架搭建-邮件-5
- 词向量之Word2vector原理浅析
- python词频统计代码_python统计词频
- nginx获得response自定义的header
- pandas 删除行
- 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinjazz/archive/2009/04/29/4138000.aspx...
- 实用防火与防爆技术培训—总目录
- idea整合EasyCode基于lombok和swagger自定义模板
- matlab中求解非线性方程组的函数,利用solve函数求解非线性方程组的问题
- google服务框架 闪退_没 Google 服务闪退?教你解决手游谷歌服务问题
- 怎样自制微信gif动态表情包?
- “VBE6EXT.OLB不能被加载”解决方法
- 解决xyplorer删除后,显示“找不到应用程序”错误
- python报错ValueError: Found input variables with inconsistent numbers of samples: [x,y]
- webassmbly blazor实现多页签效果
- 安卓关于健身的代码_亲子运动健身新玩法,娱乐享瘦两不误,让孩子不再沉迷电子产品...
- STM32——输入捕获
- 待业将近一个月,晚上11点接到面试邀约电话,我拒绝了...
- 文献免费下载网站 SCI-HUB
热门文章
- mysql集群重启失败_Mysql集群重启失败
- xampp v3.2.2 php版本,xampp 3.2.2下载
- 从零开始编写一个上位机(串口助手)QT Creator + C++
- 天干地支计算公式_如何快速的计算出每一天的天干地支
- BSides Noida CTF 2021 web题wowooofreepoint writeup(两道反序列化)
- 数字化转型 — 新能源汽车 — 生产制造流程 — Overview
- 10个程序员必上的网站
- 全国程序员高考卷,开始答题!
- c语言 编程结束怎么表示,c语言开头(c语言编程开头和结束代码)
- 被谷歌出卖定位信息成“嫌疑犯”,花了大价钱才避免窦娥冤 | 一个自行车爱好者自述...