MSPM0G3507——超声波模块移植代码

ops/2024/10/19 17:27:06/

超声波没有做单独的代码文件

直接自己创建.c.h文件,将这些复制粘贴即可,然后进行SYSCFG配置按照这些配置即可,有啥问题直接评论区提出,如果看不懂的话评论区说一下,再出讲解

超声波.c文件

#include "ti_msp_dl_config.h"
#include "Delay.h"int overcount=0;      //记录定时器溢出次数
//测距函数
int Senor_Using() 
{unsigned int sum=0;unsigned int tim;unsigned int i=0;unsigned int length;int cnt_i=0;while(i!=3)        {DL_GPIO_setPins( ultrasonic_Port_PORT ,ultrasonic_Port_TRIG_Pin_PIN );                     //TRIG=1;              //给发送端高电平delay_us(20);    DL_GPIO_clearPins(ultrasonic_Port_PORT ,ultrasonic_Port_TRIG_Pin_PIN );               //TRIG=0;              //给发送端低电平cnt_i=0;//DL_GPIO_readPins(xunji_PORT_PIN1_PORT                 , xunji_PORT_PIN1_PIN       )==xunji_PORT_PIN1_PINwhile(DL_GPIO_readPins(ultrasonic_Port_PORT,ultrasonic_Port_MCHO_Pin_PIN)!=ultrasonic_Port_MCHO_Pin_PIN)    //当接收端为0,一直循环      while(ECHO==0){cnt_i++;delay_us(1);if(cnt_i>300){	DL_GPIO_setPins( ultrasonic_Port_PORT ,ultrasonic_Port_TRIG_Pin_PIN );        // TRIG=1;        发送端给高电平  delay_us(20);DL_GPIO_clearPins(ultrasonic_Port_PORT ,ultrasonic_Port_TRIG_Pin_PIN );                //TRIG=0;    发送端给低电平cnt_i=0;          }} //跳出循环说明已经接收到信号,开启定时器记录时间DL_Timer_startCounter(TIMER_ultrasonic_INST    );     //  TIM_Cmd(TIM3,ENABLE);      使能定时器                                         i+=1;                     while(DL_GPIO_readPins(ultrasonic_Port_PORT,ultrasonic_Port_MCHO_Pin_PIN)==ultrasonic_Port_MCHO_Pin_PIN)	          //这里是知道信号结束,等待定时器计时      while(ECHO==1);	     {}DL_Timer_stopCounter(TIMER_ultrasonic_INST) ;                  //TIM_Cmd(TIM3,DISABLE);         失能定时器                     tim=DL_Timer_getTimerCount(TIMER_ultrasonic_INST) ;                  //tim=TIM_GetCounter(TIM3);         得到时计单元个数length=(tim*50)/58.0;                                               //微秒计算法求距离sum=length+sum;DL_Timer_setTimerCount(TIMER_ultrasonic_INST,0) ;                          //TIM3->CNT=0;     将计数值清零overcount=0;                                        //一般来说没有超过一个定时器周期该值不需要调用,一直给0即可//delay_ms(10);}length=sum/3;                                           //三次作为平均值return length; 
}//测距定时器中断服务函数
void TIMER_ultrasonic_INST_IRQHandler (void)
{switch (DL_TimerA_getPendingInterrupt(TIMER_ultrasonic_INST)){case DL_TIMER_IIDX_ZERO:overcount++;break;default:break;}}

超声波.h文件
 

#ifndef __ultrasonic_H
#define	__ultrasonic_H#include "ti_msp_dl_config.h"int Senor_Using() ;
void TIMER_ultrasonic_INST_IRQHandler (void);#endif

SYSCFG配置

引脚配置:

 

 

 定时器配置部分:


http://www.ppmy.cn/ops/56264.html

相关文章

【MySQL】MySQL索引失效场景

文章目录 前言一、说明举例1. 函数操作与索引失灵2. 数据类型错配3. LIKE操作符与通配符的陷阱4. OR逻辑运算的索引挑战5. 复合索引与最左前缀规则6. 特定比较操作符的局限 二、总结 前言 在数据库管理和优化的天地里,索引如同图书的目录,极大地加速了数…

appium 实战问题 播放视频时无法定位到元素

背景 在做UI自动化时,有播放详情页的用例,但是发现视频在播放的时候无法定位到元素或者很慢,了解到appium在动态的页面实时获取布局元素导致定位变慢。所以只能将视频暂停在操作元素,点击到暂停按钮又是个问题,通过ad…

LLM - Transformer 的 多头自注意力(MHSA) 理解与源码

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140281680 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 在 Transformer 中,多头自注意力机制 (MHSA, Multi-Head Self-Attenti…

SAP PS学习笔记01 - PS概述,创建Project和WBS

本章开始学习PS(Project System)。 1,PS的概述 PS(Project System)是SAP企业资源规划系统中的一个关键模块,主要用于项目管理。 它提供了一个全面的框架来规划、控制和执行项目,涵盖了从项目启…

数据结构第08小节:双端队列

双端队列(deque,double-ended queue)是一种具有队列和栈特性的数据结构,允许在其两端进行插入和删除操作。在Java中,java.util.Deque接口就是双端队列的实现,而ArrayDeque和LinkedList是其中的具体实现类。…

压测jmeter 插件 之 tps和响应时间图

1. 背景 进行压测ing 2. 需要插件 TPS 和 响应时间 3. 插件 在 选项-最下面-plugins Manager 在 Available Plugins 中 搜索 :jpgc - Standard Set 重启安装就好啦

dify/api/models/web.py文件中的数据表

源码位置:dify/api/models/web.py SavedMessage 表结构 字段英文名数据类型字段中文名字备注idStringUUIDIDUUID生成app_idStringUUID应用ID非空message_idStringUUID消息ID非空created_by_roleString创建者角色非空,默认值为’end_user’created_bySt…

npm/yarn/cnpm 淘宝镜像配置,包版本管理

一、包管理命令安装 为啥要安装这么多,有些情况会安装失败,npm安装最好设置外网代理 优先级推荐(个人喜好) cnpm > yarn > pnpm > npm # yarn安装 npm i yarn -g yarn config set registry http://registry.npm.taobao.org/# cnpm安装 npm i c…