文章目录

  • 一、HAL库ADC使用
    • 1.基础认识
  • 二、红外模块简介
  • 三、CubeMX配置
    • 1.RCC
    • 2.SYS
    • 3.ADC
    • 4.串口
  • 四、代码

一、HAL库ADC使用

1.基础认识

ADC在数字模拟电路中有过短暂的了解,模数转换,即将模拟量转换为数字量

  1. ADC的工作均为非阻塞模式

(后续补充)

二、红外模块简介

1.距离测量范围:10~80厘米
2.模拟量输出
3.电源电压:4.5~5.5 V

三、CubeMX配置

1.RCC

2.SYS

3.ADC

4.串口

四、代码

sharp.h

#ifndef __SHARP2Y0A21_H
#define __SHARP2Y0A21_H #include "main.h"#define Adc1IN11Distance_READ_TIMES  10      //定义红外传感器读取次数,以便取平均值void DistanceSensor_Init(void);                 //初始化红外传感器
float DistanceSensor_Get_Val(void);             //读取红外传感器的值#endif 
#include "sharp.h"
#include "adc.h"
#include "main.h"
#include "stdio.h"//初始化ADC,不用修改
//这里我们仅以规则通道为例                                                         //初始化传感器,需要修改端口和引脚号,这里是c出口,c1引脚,ADC3的IN11
void DistanceSensor_Init(void)
{GPIO_InitTypeDef  GPIO_InitStructure;__HAL_RCC_GPIOA_CLK_ENABLE();//使能GPIOA时钟//先初始化ADC1通道11 IO口GPIO_InitStructure.Pin = GPIO_PIN_1;//PA1GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;//模拟输入GPIO_InitStructure.Pull = GPIO_NOPULL ;//不带上下拉HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化  MX_ADC1_Init();//初始化ADC1
}
//PA1=IN1
float DistanceSensor_Get_Val(void)
{uint32_t temp_val=0;float distemp=0.0;uint8_t t;for(t=0;t<Adc1IN1Distance_READ_TIMES;t++){temp_val+=HAL_ADC_GetValue(&hadc1);    //读取ADC值,通道1HAL_Delay(5);}temp_val/=Adc1IN1Distance_READ_TIMES;//得到平均值,这个是平均的ADC,printf("average_val=%d\r\n",temp_val);distemp=temp_val*3.3/4095;printf("voltage= %f\r\n",distemp);//电压值//电压对应距离distemp=(-13.2*distemp*distemp*distemp)+72.84*distemp*distemp-140*distemp+107.12;return distemp;}

main.c

  while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_ADC_Start(&hadc1);adcx=HAL_ADC_GetValue(&hadc1);distance=DistanceSensor_Get_Val();printf("adcX=%d\r\n",adcx);printf("shuiwei=%f\r\n",distance);HAL_Delay(200);}

完整工程详见本人资源

STM32F103C8T6 红外测距模块测量距离(SHARP GP2Y0A21YK0F)使用CubeMx生成HAL库(ADC)相关推荐

  1. STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库)

    STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库 文章目录 STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库 一.O ...

  2. 距离感应音乐玩具计算机系统设计,可编程机器人玩具程小奔红外测距传感器测量距离案例...

    文:邱老师 上次课程我们学习了用速度乘以时间计算程小奔移动距离的方法.那么,它能否测量还没有走过的路程距离呢?答案是可以的. 程小奔编程机器人集合了多种传感器,今天我们要使用程小奔机器人的红外测距传感 ...

  3. (STM32CubeMx生成HAL库)STM32F103C8T6最小系统板,4个按键分别控制42混合步进电机启停、变向、加减速

    用的定时器1通道1生成pwm脉冲,改变ARR值改变脉冲频率从而实现调速,采用按键中断控制 直接上图 引脚定义: PA5 EN 使能   PA7 DIR/CW    方向 PA8 PUL/CLK     ...

  4. 红外测距模块 51单片机_[51单片机] HC-SR04超声波测距仪

    1.HC-SR04超声波模块工作原理 (1)采用IO口触发测距,给至少10us高电平脉冲: (2)模块自动发送八个40khz方波,并自主检测是否有电波返回: (3)当有信号返回时,通过IO口输出一个高 ...

  5. STM32H750VBT6驱动程控增益放大模块PGA113——基于CubeMX的Hal库

    前言 高情已逐晓云空,不与梨花同梦. 最近,因为准备电赛的需要,需要用到程控增益放大模块(PGA113),也就是这篇博文的主角:破哥啊(谐音称呼),需要调通这位大哥,今天终于完成了驱动的程序代码.说起 ...

  6. HC-SR04超声波模块测量距离出现跳变问题且跳变步长恰好为1.7cm

    问题描述 如下图,当模块静止不动时仍会有数据跳动(最后一列数据为超声波测距的距离数据,单位cm) 现状 记录问题,尚且未找到原因与解决方法

  7. 红外测距模块工作原理_共享单车里的通讯模块,工作原理是啥呢?

    现在我们所看到了共享单车除了小黄车(OFO)没有配备GPS智能锁外,其他品牌的共享单车都有安装,那么这么高科技的东西具体是怎么工作的呢?下面由我给大家讲解下其中的奥秘. 其实这个东西也谈不上太多高科技 ...

  8. 身高测量仪红外传感测距模块应用方案 WTU201F2 B004 低功耗

    ​身高测量仪被广泛用于医疗.教育等领域,而红外测距模块在身高测量仪中的应用则成为了一种新的技术手段.红外测距模块是基于红外线技术的一种测距器件,在身高测量仪中,红外测距模块能够精准地测量出人体的高度. ...

  9. STM32学习笔记4——HC_SR04超声波测距模块的调试记录

    项目场景: STM32F103单片机和HC_SR04超声波测距模块测量距离. 其中HC_SR04模块采用5V供电. 问题描述: 代码编写完成以后,HC_SR04超声波测距模块传递模块返回来的高电平一直 ...

  10. 第十七篇、基于Arduino uno,获取cp2d12红外测距传感器的原始值和距离值——结果导向

    0.结果 说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是距离值,如果是你想要的,可以接着往下看. 1.外观 说明:虽然红外测距传感器形态各异,但是原理和代码都是适用的,只 ...

最新文章

  1. html css右下角三角形,html – 框内的CSS中的三角形
  2. Nginx 学习 —— 负载均衡
  3. oracle根据分区移动,Oracle 12c 在线移动分区和部分分区read only
  4. Almost Regular Bracket Sequence
  5. Java 01背包【动态规划·蓝桥杯练习题】(相信杨超越,相信锦鲤,默默努力,其它的看天意)
  6. 修改Netbeas的注释结构
  7. python中math模块函数_Python常用的一些内建函数和math模块函数
  8. Tomcat8史上最全优化实践
  9. sudo apt-get:command not found报错解决
  10. 博客制作系 -- 2.4. Git
  11. 手机app测试用例怎么写?手机app测试点有哪些?只有干货没有水分,错过绝对后悔!
  12. 10款精美的web前端源码的特效
  13. 安卓手机有坏点测试软件,手机屏幕坏点怎么检测
  14. mysql计算同比和环比的区别_MySQL统计同比环比SQL
  15. 云原生的年代service mesh不止Istio,还有另一个选择-Kuma
  16. kali 安装volatility_volatility的使用
  17. linux安装globalsign证书,Globalsign 标准型(EV型)代码签名证书提取指南
  18. Mac抓包工具—— Charles相关总结
  19. Linux -- Makefile
  20. vue 使用leaflet 加载地图服务 (可切换天地图 影像地图)(一)

热门文章

  1. HTML代码页面无法跳转为什么,html超链接不跳转 html为什么超链接不跳转页面
  2. ureport 显示html,UReport2 与业务结合
  3. 试试H3C Comware Platform Software Version 5.20
  4. VL817-Q7 USB3.0HUB
  5. python自动生成sql建表语句
  6. Java调用第三方平台发送手机短信
  7. 聊天室后台 java php_PHP实现简单聊天室(附源码)
  8. 用python实现千图成像工具,快给你的男/女神做一个吧~
  9. PS CS5制作1寸照片
  10. Oracle 定时任务详解(dbms_job)