STM32F103 超声波 串口输出数据

发布者:huanhui最新更新时间:2019-04-08 来源: eefocus关键字:STM32F103  超声波  串口输出数据 手机看文章 扫描二维码
随时随地手机看文章

#include "cj.h"

#include "stm32f10x.h"

#include "delay.h"

#include "usart.h"


unsigned int overcount=0;



void NVIC_Config(void)//优先级设置

{

NVIC_InitTypeDef NVIC_InitStructer;


NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);


NVIC_InitStructer.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructer.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructer.NVIC_IRQChannel=TIM2_IRQn;//

NVIC_InitStructer.NVIC_IRQChannelCmd=ENABLE;


NVIC_Init(&NVIC_InitStructer);

}


void CH_SR04_Init(void)//超声波模块初始化

{

GPIO_InitTypeDef GPIO_InitStructer;

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructer;


RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);


GPIO_InitStructer.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructer.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructer.GPIO_Pin=GPIO_Pin_8;

GPIO_Init(GPIOB, &GPIO_InitStructer);//设置PB8作为触发引脚



GPIO_InitStructer.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_InitStructer.GPIO_Pin=GPIO_Pin_9;

GPIO_Init(GPIOB,&GPIO_InitStructer);//设置PB9作为接受引脚


TIM_DeInit(TIM2);

TIM_TimeBaseInitStructer.TIM_Period=65534;

TIM_TimeBaseInitStructer.TIM_Prescaler=71; //经过预分频后,计数器的值,每隔0.5us就加一。

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|TIM_IT_CC1,ENABLE);//


TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//

NVIC_Config();

TIM_Cmd(TIM2,DISABLE);//


}



 


float Senor_Using(void)//测距函数

{

float length=0,sum=0;

u16 tim;

unsigned int i=0;


 


while(i!=5)

{


PBout(8)=1; //

delay_us(20); //

PBout(8)=0;


while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==RESET);

TIM_Cmd(TIM2,ENABLE);//

i+=1;

while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==SET);//

TIM_Cmd(TIM2,DISABLE);//


tim=TIM_GetCounter(TIM2);//


length=(tim+overcount*1000)/58.0;//


sum=length+sum;

TIM2->CNT=0; //

overcount=0; //

delay_ms(100);

}

length=sum/5;

return length;//

}


 


void TIM2_IRQHandler(void) //

{

if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET)

  {

TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//

overcount++;


  }

}

 


由于是复制粘贴过来的,所以只是对部分地方进行了注释。其实很简单,就是通过一个引脚输出超过10us高电平作为脉冲信号,在设置一个引脚作为接收引脚。当接收到高电平,就开启定时器计数,当检测到低电平,就停止计数。将数值取出来,通过公式计算即可得到距离。最后是这个串口输出,直接#include "stdio.h"后直接用pirntf即可。但是不要忘了在此之前还要对编译器相关配置,这里请自行百度,很简单的。

关键字:STM32F103  超声波  串口输出数据 引用地址:STM32F103 超声波 串口输出数据

上一篇:关于STM32F103型号的矩阵按键的程序书写
下一篇:stm32中pwm频率和占空比设置

推荐阅读最新更新时间:2024-03-16 16:26

51单片机超声波模块数码管程序分享
超声波原理简单测距准确,应用广泛下面贴一个自己写的数码管程序,显示部分需要改,写的是我使用的是慧净开发板,共阴数码管。 //超声波模块程序 //Trig = P2^0 //Echo = P3^2 #include #define uchar unsigned char #define uint unsigned int unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的码表 uint ti me = 0; uintTImeH = 0; uintTImeL = 0; uint succeed_flag;
[单片机]
51单片机<font color='red'>超声波</font>模块数码管程序分享
基于ST STM32F103与TI CC2564智能车载双模蓝牙方案
致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出基于意法半导体(ST)STM32F103与德州仪器(TI)CC2564的智能车载双模蓝牙方案WLT2564S。该车载双模蓝牙方案可以服务于逆变器为12v转220v 1500w的电源转换器,用户通过蓝牙无线连接到手机或平板计算机,可以通过APP来监控智能电源转换器工作时的各种状况,如超载保护、短路保护、过压保护、欠压保护、欠压报警、过温保护、电瓶电源使用到转换器警报提示等相关使用安全控制和提示功能。 随着车载电源逆变器的普及率增高,人们出行时越来越习惯于使用逆变器连接蓄电池带动电器及各种工具工作,把家用电器连接到电源转换器的输出端,人们就能在汽车内使用
[单片机]
基于ST <font color='red'>STM32F103</font>与TI CC2564智能车载双模蓝牙方案
大联大友尚推基于ST STM32F103与TI CC2564智能车载双模蓝牙方案
2016年8月16日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出基于意法半导体(ST)STM32F103与德州仪器(TI)CC2564的智能车载双模蓝牙方案WLT2564S。该车载双模蓝牙方案可以服务于逆变器为12v转220v 1500w的电源转换器,用户通过蓝牙无线连接到手机或平板计算机,可以通过APP来监控智能电源转换器工作时的各种状况,如超载保护、短路保护、过压保护、欠压保护、欠压报警、过温保护、电瓶电源使用到转换器警报提示等相关使用安全控制和提示功能。 随着车载电源逆变器的普及率增高,人们出行时越来越习惯于使用逆变器连接蓄电池带动电器及各种工具工作,把家用电器连接到电源转换器的输出端,
[汽车电子]
大联大友尚推基于ST <font color='red'>STM32F103</font>与TI CC2564智能车载双模蓝牙方案
stm32f103——串口UART
在学习UART之前,我们先来了解一下单片机与外围设备之间的通信: 单片机与外围设备之间的信息交换和传输我们称为通信。过去通信方式有两种:并行通信和串行通信。 并行通信: 定义:并行通信是指利用多条传输线将一个数据的各位同时传送。 传输方式:传输一个字节(8个位)的数据时,并口是将8个位一字排开,分别在8条连接线上同时传输。 特点:传输速度块,适用于短距离通信。 缺点:虽然,并行通信传输速度快,但是由于,线与线之间存在电磁干扰,会导致数据错误。而且由于线比较多,PCB布线比较麻烦,所以并行通信不常用,而串行通信用得比较广泛。 串行通信: 定义:串行通信是指利用一条传输线将数据一位位地顺序传送。 传输方式:传输一个字节(8
[单片机]
<font color='red'>stm32f103</font>——<font color='red'>串口</font>UART
STM32F103标准库开发---Uart串口通信实验---printf()函数重定向
一、printf()函数重定向 方法一:使用MicroLIB库 1. 勾选 Use MicroLIB 具体如下图所示: 2. 重定向 fputc 函数 具体代码如下: #include stdio.h //需要调用stdio.h文件 /**********************printf重定向****************************/ int fputc(int ch, FILE *f) { USART_SendData(USART1, ch); //发送数据 while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);//等待发送完
[单片机]
<font color='red'>STM32F103</font>标准库开发---Uart<font color='red'>串口</font>通信实验---printf()函数重定向
兆讯216兆M3内核MCU,MH2103ACCT6完美替代STM32F103C8T6/CBT6
兆讯恒达软硬件完美替代F103/105系列,F103系列等 MH2103CCCT6/MH2103ACCT6 MH2103ARPT6 MH2103AVET6 MH2103AVGT6 MH2103AZET6 主频216兆 内置的存储器包括:最大1024K Flash,96K S 该系列内置了多达2个高级、10个通用定时器、2个基本定时器、3个12位的、2个12位的, 还包含标准和先进的通信接口包括:3个S接口、2个I2S接口、2个接口、5个U(S)ART接口、1个2.0 全速串行通信接口、1个总线控制器、1个O接口 MH2103A(C)xxxx
[机器人]
基于超声波的围岩松动圈实时监测系统设计
引言 巷道的安全支护在煤矿安全生产中起到重要的作用,也是煤矿安全生产中的难点。对巷道的安全支护的关键是要实时地掌握嗣岩松动圈的破碎状态。 巷道开挖后破坏了原岩的应力平衡状态,从而导致:第一,巷道周边径向应力下降为零,围岩强度明显下降;第二,围岩中出现应力集中现象。当这种应力超过围岩强度之后,在巷道周边围岩所形成的破碎带便是围岩松动圈。其物理状态表现为破裂缝的增加及岩体应力水平的降低。松动圈测试就是测试开巷后新的破坏裂缝及其分布范围,围岩中有新破裂缝与没有破裂缝的界面位置就是松动圈的边界。参考文献介绍了基于松动圈测试的检测原理相应的测试方法,包括超声波探测法、多点位移计量测法和地质雷达探测法。参考文献中根据震波在不同状态的岩层中
[单片机]
基于<font color='red'>超声波</font>的围岩松动圈实时监测系统设计
基于nRF2401光线收发模块和超声波技术的精确定位系统的研制
摘要:精确的位置信息是实现普适计算的要求。提出了基于nRF2401无线收发模块和超声波技术的精确定位系统的组成框架和定位算法;并给出了基于nRF2401无线收发模块组成传感器网络的MAC协议和超声波收发时间差的修正方案。 关键词:超声波定位 普适计算 无线电收发模块 媒体接入控制 随着计算机技术和无线电通信技术的发展,普适计算(Ubiquitous Computing)将被应用在各种领域,融入到人们的日常生活中,提高人们的生活质量和水平。普适计算的一个前题条件是必须获取普适计算对象的位置信息,这个位置信息依据普适计算的不同应用,可以是基于区域范围的,也可以是基于精确坐标的。 有很多定位技术都可以对物体进行定位,但
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved