输入捕获模块的使用–超声波测距

这篇具有很好参考价值的文章主要介绍了输入捕获模块的使用–超声波测距。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

输入捕获模块的使用–超声波测距

@(MSP432P401R)

输入捕获的配置

ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

基本默认即可


输入捕获的API的使用

参数

ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

  1. Capture_Mode即捕获模式,经实际测试,MSP432P401R只能使用前三种模式
    ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

  2. Capture_CallBackFxn即回调函数

  3. Capture_PeriodUnits即捕获周期单位
    ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

函数表

ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

全局配置,在ti_drivers_config.c文件中生成

ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

功能函数

ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

文档链接:file:///D:/MSP%20SDK/simplelink_msp432p4_sdk_3_40_01_02/docs/tidrivers/doxygen/html/_capture_8h.html#a87e62f4b1cc1800afecf54b74fd58e63


具体代码说明

  1. 头文件
#include <stdint.h>
/* Driver Header files */
#include <ti/drivers/Capture.h>
#include<ti/drivers/GPIO.h>
#include <ti/drivers/apps/LED.h>
/* Driver Configuration */
#include "ti_drivers_config.h"
/**
  1. 主线程函数
void *mainThread(void *arg0)
{
    GPIO_init();
    Capture_init();
    Distance_Num=0;
    EDGE_NUM=0;
    Capture_Handle  handle;
    Capture_Params  params;
    Capture_Params_init(&params);
    params.mode  = Capture_ANY_EDGE;
    params.callbackFxn = User_CaptureCallbackFunction;
    params.periodUnit = Capture_PERIOD_US;
    handle = Capture_open(CONFIG_CAPTURE_0, &params);
    Capture_start(handle);
    while(1)
    {
        Send_Trig();
        ms_Delay(80);
    }
    return (NULL);
}
  1. 中断回调函数
void User_CaptureCallbackFunction(Capture_Handle handle, uint32_t interval)
{
    if(EDGE_NUM>=0xffffffff)
    {
        EDGE_NUM=1;
    }
    if(EDGE_NUM%2==1)
    {
        Distance_Value[Distance_Num]=interval*170/1000;
        Distance_Num++;
        if(Distance_Num>=100)
        {
            Distance_Num=0;
        }
    }
    EDGE_NUM++;
}
  1. 其他函数
void Send_Trig(void)
{
    GPIO_write(CONFIG_GPIO_0,1);
    ClockP_usleep(20);
    GPIO_write(CONFIG_GPIO_0,0);
}
void ms_Delay(uint16_t t_ms)
{
 uint32_t t=t_ms*4000;
 while(t--);
}
  1. 变量定义和函数声明
float Distance_Value[100];
uint16_t Distance_Num;
uint32_t EDGE_NUM;

void Send_Trig(void);
void User_CaptureCallbackFunction(Capture_Handle handle, uint32_t interval);
void ms_Delay(uint16_t t_ms);

原理说明

由于MSP432P401R只能检测上升沿下降沿上升沿与下降沿,以检测上升沿与下降沿为例
ti drivers,基于MSP432P401R的小车基础模块--电赛备赛,c++,图论,算法,单片机

当开启捕获后,记录下第一个值,记为Value[0],之后捕获到上升沿,此时记录下第二个值**Value[1]并进入中断,参数 i n t e r v a l = V a l u e [ 1 ] − V a l u e [ 0 ] interval=Value[1]-Value[0] interval=Value[1]Value[0],此值为低电平持续时间,之后捕获到下降沿,此时记录下第三个值Value[2]**并进入中断,参数 i n t e r v a l = V a l u e [ 2 ] − V a l u e [ 1 ] interval=Value[2]-Value[1] interval=Value[2]Value[1],此值即为高电平持续时间,以此类推,当EDGE_NUM为0,2,4······时得低电平持续时间,为1,3,5······时得高电平持续时间,而我们需要的是高电平持续时间,故需要添加判断。不难推测当只检测上升沿或只检测下降沿时得到的是周期时间,经检验该推测正确。文章来源地址https://www.toymoban.com/news/detail-612353.html

到了这里,关于输入捕获模块的使用–超声波测距的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【mcuclub】超声波测距模块HC-SR04

      编号 名称 功能 1 VCC 电源正 2 TRIG 触发控制信号输入 3 ECHO 回响信号输出 4 GND 电源地 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物体测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便

    2023年04月08日
    浏览(44)
  • 【STM32篇】驱动HC_SR04超声波测距模块

    CH_SR04 HC_SR04超声波测距模块可提供 2cm-400cm 的非接触式测距感测功能,测距精度高达3mm;模块包括超声波发射器,接收器与控制电路。 基本工作原理: (1)采用IO口TRIG触发测距,需要给最少10us的高电平。 (2)模块自动发送8个40kHz的方波,自动检测是否有信号返回。 (3)有

    2024年02月17日
    浏览(50)
  • 超声波测距模块HC-SR04详解(基于51单片机)

    本篇文章是个人整理的包含超声波测距模块HC-SR04的基本介绍与基本工作原理以及分别通过LCD1602、数码管和串口显示距离的实例讲解与代码的笔记,部分内容来自《HC-SR04超声波测距模块说明书》,代码使用模块化编辑,部分模块来自江科大自化协的51单片机教学视频。 希望大

    2023年04月16日
    浏览(48)
  • 基于MAX-10 FPGA 超声波测距模块HC_SR04

    HC-SR04是一种基于超声波的测距模块。该模块向前15度内发送超声波并接收回响,通过发出超声波到收到回响的这个时间间隔计算前方的障碍物距离,可以用来给智能小车做障碍物监测。可提供2cm- 400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接

    2024年02月07日
    浏览(48)
  • 基于STM32的HC_SR04模块实现超声波测距(附源码)

    本次实验需要通过STM32与HC_SR04模块实现实时测距,并将测距信息通过串口显示在电脑上 原理 超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时

    2024年02月11日
    浏览(47)
  • 树莓派使用HC-SR04超声波测距

      超声波测距原理很简单:   1、通过记录发送超声波的时间、记录超声波返回的时间,返回时间与发送时间相减得到超声波的持续时间。   2、通过公式:( 超声波持续时间 * 声波速度 ) / 2 就可以得出距离;   HC-SR04参数:   工作电压: 5V   工作电流:15mA   

    2024年02月06日
    浏览(48)
  • 基于STM32的超声波HC-SR04和红外测距模块测量距离的实验对比(HAL库)

            前言: 本文主要是为了 日常普通场合 下测距做的 对比实验 ,本实验主要包含 2种模块 : 超声波测距模块 (HC-SR04)和 红外测距模块 (SHARP GP2Y0A21YK0F)。两种模块不管是测距原理和编程实验方式都是不相同的,其测距效果也存在很大差异。感兴趣的读者朋友,

    2023年04月27日
    浏览(63)
  • 超声波测距仿真

    萌新第一次写博客,有格式不正确的地方还请大家见谅。 用HCSR04超声波传感器测量距离,测量范围0~170cm,精确到小数点后一位。 用LCD1602或者数码管显示测量到的距离。 当距离大于120cm时,绿色LED灯亮; (1)当距离在50-120cm之间,蜂鸣器间断发声“滴 滴 滴 ”提示,黄色LED灯亮

    2024年02月05日
    浏览(41)
  • 超声波测距系统

      具有测距、温度补充、实时时钟、记忆、阈值警报、串口数据发送等等功能,通过LCD1602显示,按键进行相关操作。   LCD1602显示共有五个界面,按键一用于切换显示界面。   此界面测距为连续测距模式,LCD1602不间断刷新测量距离和温度,一旦测量距离小于设置的阈

    2024年02月03日
    浏览(39)
  • STM32系列(HAL库)——F103C8T6通过HC-SR04超声波模块实现测距

    (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) (1)某宝买的超声波模块   (2)F1的板子,本例使用经典F103C8T6 (3)ST-link 下载器 (4)USB-TTL模块 (5)杜邦线若干 (1)模块简介:         超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射

    2024年02月02日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包