描述

注意:定义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超声波的控制...相关推荐

  1. GSM/GPRS模块 AT指令集C语言编程——基于有方M660+和MSP430单片机

    GSM/GPRS芯片是手机中负责收发短信.拨打电话以及访问GPRS网络的核心器件.有方M660+为深圳有方公司生产的一款超小封装的GSM/GPRS工业无线模块,可以提供高品质的语音.短信.数据业务等功 ...

  2. c51的八位智力抢答器C语言编程,基于AT89C51单片机的八位智力抢答器设计.doc

    基于AT89C51单片机的八位智力抢答器设计 江 西 理 工 大 学 南 昌 校 区 毕 业 设 计(论文) 题 目:八位智力抢答器 系 :信息工程系 专 业:应用电子技术 班 级: 学 生: 学 号 ...

  3. 变频调速系统c语言编程,基于8098单片机的SPWM变频调速系统

    数字控制的交流调速系统所选用的微处理器.功率器件及产生PWM波的方法是影响交流调速系统性能好坏的直接因素.在介绍了正弦脉宽调制(SPWM)技术的基础上,设计了一种以8098单片机作为控制器,以智能功率 ...

  4. 感应门铃的c语言程序,基于STM32单片机智能门禁门铃热释人体感应光照报警+RFID门禁电磁锁设计-(原理图+程序源码)...

    视频:https://v.youku.com/v_show/id_XNDc2NDMwNDQzMg==.html?spm=a2hzp.8253869.0.0 2018-644.STM32成品+RFID设 ...

  5. 基于单片机串口远程多路温湿度采集仿真-基于单片机ADC0809八路电压采集系统设计-基于单片机16x32点阵多模式显示仿真设计-基于单片机餐厅呼叫控制系统仿真设计-基于STM32单片机的智能水杯设计

    1220基于单片机ADC0809八路电压采集系统设计-毕设课设资料 数码管显示,测量八路电压表. #define addo (5.0/255.0) #define zero 0.005 //用于校准A ...

  6. 基于STM32单片机智能RFID刷卡汽车位锁设计(论文

    基于STM32单片机智能RFID刷卡汽车位锁设计(论文) 摘要 在车位日益紧张的今天,如何避免私家车位被他人抢占,是令人头痛的事.日前面市的一种新型车位锁,不仅有效解决了这一问题,还可对车辆起到防盗作 ...

  7. 基于STM32单片机智能蓝牙PWM温控风扇带定时APP控制

    实践制作DIY- GC0009-智能蓝牙PWM温控风扇 一.功能说明: 基于STM32单片机设计-智能蓝牙PWM温控风扇 功能介绍: 1.基于STM32F103C系列,OLED,DHT11温度湿度传感 ...

  8. 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计

    1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告)  摘  要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...

  9. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

最新文章

  1. kepserver 6.5_非凡说| 先定一个6.5分小目标,财大生如何突破瓶颈拿下雅思!
  2. 自动化测试框架搭建-邮件-5
  3. 词向量之Word2vector原理浅析
  4. python词频统计代码_python统计词频
  5. nginx获得response自定义的header
  6. pandas 删除行
  7. 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinjazz/archive/2009/04/29/4138000.aspx...
  8. 实用防火与防爆技术培训—总目录
  9. idea整合EasyCode基于lombok和swagger自定义模板
  10. matlab中求解非线性方程组的函数,利用solve函数求解非线性方程组的问题
  11. google服务框架 闪退_没 Google 服务闪退?教你解决手游谷歌服务问题
  12. 怎样自制微信gif动态表情包?
  13. “VBE6EXT.OLB不能被加载”解决方法
  14. 解决xyplorer删除后,显示“找不到应用程序”错误
  15. python报错ValueError: Found input variables with inconsistent numbers of samples: [x,y]
  16. webassmbly blazor实现多页签效果
  17. 安卓关于健身的代码_亲子运动健身新玩法,娱乐享瘦两不误,让孩子不再沉迷电子产品...
  18. STM32——输入捕获
  19. 待业将近一个月,晚上11点接到面试邀约电话,我拒绝了...
  20. 文献免费下载网站 SCI-HUB

热门文章

  1. mysql集群重启失败_Mysql集群重启失败
  2. xampp v3.2.2 php版本,xampp 3.2.2下载
  3. 从零开始编写一个上位机(串口助手)QT Creator + C++
  4. 天干地支计算公式_如何快速的计算出每一天的天干地支
  5. BSides Noida CTF 2021 web题wowooofreepoint writeup(两道反序列化)
  6. 数字化转型 — 新能源汽车 — 生产制造流程 — Overview
  7. 10个程序员必上的网站
  8. 全国程序员高考卷,开始答题!
  9. c语言 编程结束怎么表示,c语言开头(c语言编程开头和结束代码)
  10. 被谷歌出卖定位信息成“嫌疑犯”,花了大价钱才避免窦娥冤 | 一个自行车爱好者自述...