目录

一、实验目的

二、电路连接

三、实验执行(五步)

1.初始化ADC的IO引脚

2.配置ADC的时钟,注意要小于14MHz

3.根据ADC的编程接口  实现初始化ADC的基本参数

4.配置常规序列并闭合触发输入开关

5.闭合总开关、启动并读取转换结果

四、代码


一、实验目的

使用ADC实现:根据光敏传感器的光照强弱去得到不同的输入电压对应的量化结果码(使用软件触发常规序列的执行),既而根据得到的量化值*分辨率得到不同的电压 然后去实现板载灯的亮灭(因为日光灯照度一般10lux,其对应的AO输出电压为1.5V,所以以1.5V为边界实现板载灯的亮灭)。

 

二、电路连接

三、实验执行(五步)

ADC的执行(五步):初始化ADCIO、配置时钟、ADC_Init、配置常规序列/注入序列、闭合触发输入开关和总开关

1.初始化ADC的IO引脚

2.配置ADC的时钟,注意要小于14MHz


3.根据ADC的编程接口  实现初始化ADC的基本参数

其中,值得注意的是:EOC和JEOC标志位,EOC是end of convert,另一个是Inject开头的


常规序列的第一个是配置常规序列的内容,即配置哪个通道,采样时间多少

连续模式:一旦启动 ADC,它会 不停地对同一个通道采样和转换,转换完一轮马上开始下一轮,像水龙头开着一样,结果源源不断。----针对一个通道


对齐方式:一般选择右对齐,方便计算


外部触发这里选择软件触发


双ADC表示是否使用两个ADC来执行操作


通道数:表示你要使用几个通道,这里是只使用1个


扫描模式:如果你配置了 多个通道,ADC 会按照你设定的顺序 一个接一个地采样、转换
例如:先测通道 0,再测通道 1,再测通道 2……直到结束一轮。------针对多个通道

4.配置常规序列并闭合触发输入开关

首先配置序列计划,参数依次是ADC名称,选择第几个通道,在序列计划在排第几,采样时间(注意这个采用时间 给的是默认是一些固定的时间参数,这里选择与光敏传感器(10.24)最接近的13cycle)


之后闭合触发输入的开关  以及闭合ADC总开关


5.闭合总开关、启动并读取转换结果

 先清楚标志位


发送软件触发的输入信号


当标志位从0-1表示常规序列完成了,注意不是一次转换完成,而是一次常规序列都完成了 


读取这个值,并把这个值转为近似的电压,做后续操作

四、代码

#include "stm32f10x.h"
#include "Delay.h"
#include "usart.h"
void App_GPIO_Init(void);
void App_ADC_Init(void);int main(void)
{//使用ADC实现软件触发的单通道转换//ADC初始化 //其中注意输入电压的内阻已经得到,并且因此得到的采样时间是10.24cycleApp_GPIO_Init();App_ADC_Init();while(1){//先清零EOC标志位ADC_ClearFlag(ADC1,ADC_FLAG_EOC);while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET);uint16_t res=ADC_GetConversionValue(ADC1);		float volt=res*(3.3f/4095);if(volt>1.5){GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);}else{GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);}}
}
void App_GPIO_Init(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitTypeDef GPIO_InitStruct={0};GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_OD;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);}
void App_ADC_Init(){//首先就是初始化ADC的IORCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef  GPIO_InitStruct={0};GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStruct);//初始化后开启时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//初始化ADCADC_InitTypeDef ADC_InitStruct={0};ADC_InitStruct.ADC_ContinuousConvMode=DISABLE;ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;ADC_InitStruct.ADC_NbrOfChannel=1;ADC_InitStruct.ADC_ScanConvMode=DISABLE;ADC_Init(ADC1,&ADC_InitStruct);//配置常规序列ADC_RegularChannelConfig(ADC1,0,1,ADC_SampleTime_13Cycles5);ADC_ExternalTrigConvCmd(ADC1,ENABLE);//开启总开关ADC_Cmd(ADC1,ENABLE);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/921775.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921775.shtml
英文地址,请注明出处:http://en.pswp.cn/news/921775.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多模态模型出现“幻觉”,描述了表格中不存在的内容,如何修正?

在日常工作中,多模态模型的 “幻觉” 问题已成为影响效率的关键痛点 —— 当我们需要模型基于文档生成建议性内容(如行业报告分析、论文数据解读等)时,模型常因无法准确理解文档信息,输出包含 “虚构内容” 的结果&…

Java AI 智能问数:Function调用版如何重塑企业数据决策

Java AI 智能问数:Function调用版如何重塑企业数据决策 在数字化转型浪潮中,企业一把手常面临数据查询的痛点:分析师需编写复杂SQL,业务人员依赖IT支持,决策链条冗长。传统方法效率低下,而自然语言处理&…

AI-调查研究-74-具身智能 机器人学习新突破:元学习与仿真到现实迁移的挑战与机遇

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) AI炼丹日志-31- 千呼万唤始出来 GPT-5 发布!“快的…

劳务员的就业前景如何?

劳务员的就业前景整体较为乐观,受到行业需求、政策支持等因素的积极影响,同时也面临着一些挑战。以下是具体分析:1.就业优势行业需求稳定:建筑行业作为国民经济的支柱产业,持续发展使得对劳务员的需求较为稳定。无论是…

libvirt 新手指南:从零开始掌握虚拟化管理

引言 在云计算、大数据和边缘计算的时代,虚拟化技术已成为 IT 基础设施的核心支柱。它允许我们在单一物理服务器上运行多个虚拟机(Virtual Machine,简称 VM),从而实现资源的高效利用、快速部署和灵活扩展。对于新手来说…

OpenLayers数据源集成 -- 章节三:矢量要素图层详解

前言在前面的文章中,我们学习了OpenLayers的瓦片图层(TileLayer)技术。本文将深入探讨OpenLayers中的矢量要素图层(VectorFeatureLayer)功能,这是WebGIS开发中处理矢量数据、实现交互式地图的核心技术。矢量…

从“能说话”到“会做事”:AI Agent如何重构日常工作流?

从“能说话”到“会做事”:AI Agent如何重构日常工作流?在人工智能飞速发展的当下,AI已从最初简单的语音交互、信息检索进化到了具备自主决策与行动能力的新阶段,其中AI Agent的出现堪称关键转折点。从只能机械“说话”回答问题&a…

随身wifi到底有没有用?

不用绕弯子,直接说清随身WiFi怎么回事,对比完家用WiFi和手机热点,再避坑~一、先明白:随身WiFi到底是啥? 1、简单讲就是「能揣兜里的WiFi发射器」——要么插张物联卡,要么内置流量,能…

MySQL问题8

MySQL深度分页优化思路 常见的3种优化思路如下: 1. 子查询优化方式 示例改写前: SELECT * FROM words WHERE name oee ORDER BY id LIMIT 99999990, 10;这个写法会导致 MySQL 扫描并丢弃前面 99999990 行,效率极低。 示例改写后&#xff…

洛谷 P1249 最大乘积-普及/提高-

P1249 最大乘积 题目描述 一个正整数一般可以分为几个互不相同的自然数的和,如 312312312,413413413,514235142351423,615246152461524。 现在你的任务是将指定的正整数 nnn 分解成若干个互不相同的自然数(也可以不分解…

大学地理信息科学该如何学习才能好就业

一、明确专业特点与就业方向地理信息科学是一门交叉性强、实践性强的学科,融合了地理学、计算机科学、测绘、遥感等多个领域,广泛应用于自然资源管理、城市规划、交通、环境、农业、水利、智慧城市等行业。主要就业方向包括:政府部门/事业单位…

【git】Git 大文件推送失败问题及解决方案

Git 大文件推送失败问题及解决方案 在日常开发中,我们经常会遇到这样的问题: Remote: File [xxx.exe] size 188.156MB, exceeds quota 100MB Remote: Please remove the file[s] from history and try again这是因为 Gitee/GitHub 等平台对单个文件大小有…

国产银河麒麟三维数字沙盘大数据可视化研训推演模拟仿真地理信息系统

国产银河麒麟三维数字沙盘大数据可视化研训推演模拟仿真地理信息系统独立自主知识产权和原创源代码级地理信息系统平台,核心引擎与算法实现全栈国产化,提供从数据采集、处理到可视化分析的全链条自主可控解决方案, 1.2支持国产操作系统&…

GPT Server 文档

目录配置文件的详细说明(后续持续完善)openai_api_server配置控制器(controller)配置模型(worker)配置模型配置大语言模型 示例:QwenEmbedding模型 示例:Conan-embedding-v1TTS文本转语音模型 示例: Spark-TTST2I 文生图模型示例:…

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G+32G_开启ADB ROOT安卓固件-方法3

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G32G_开启ADB ROOT安卓固件-方法3 声明,这个安卓固件root一旦恢复出厂设置,会变回原样,虽然root,但也无法自行操作。 建议按照:中国移动云电脑一体机-创维LB2004_瑞芯微…

设计模式(策略,观察者,单例,工厂方法)

文章目录1. 设计模式核心概念与C语言实现基础2. 常用设计模式详解模式一:策略模式(Strategy Pattern)模式二:观察者模式(Observer Pattern)模式三:单例模式(Singleton Pattern&#…

terraform入门

一、概念 1、Terraform 的“基础设施即代码”是什么 基础设施即代码 (IaC) 工具允许您使用配置文件而非图形用户界面来管理基础设施。通过定义可版本控制、可重用和可共享的资源配置,IaC 允许您以安全、一致且可重复的方式构建、更改和管理您的基础设施。 Terraform…

ARM 体系结构与存储器

一、RAM 分类SRAM (Static RAM)用 触发器/晶体管 存储 0/1。特点:速度快、功耗低(静态保持),但成本高、容量小。应用:片上缓存、寄存器文件、单片机内存。DRAM (Dynamic RAM)用 电容充放电 存储 0/1。特点:…

Jenkins运维之路(初识流水线)

1.初次使用流水线前面我们用自由风格的流水线进行了项目部署,但是自由风格的流水线只能应付一些简单且项目规模不是很大的部署。为了让流水线能够灵活、通用、逻辑清晰且更加容易维护,现在一般企业都是采取使用了Pipeline的方式来对流水线进行构建&#…

【智能协同云图库】基于统一接口架构构建多维度分析功能、结合 ECharts 可视化与权限校验实现用户 / 管理员图库统计、通过 SQL 优化与流式处理提升数据

摘要:本节围绕提升空间图库管理分析能力,先分用户与管理员两类梳理资源使用、分类、标签等 6 大分析需求,再设计统一实现流程与接口方案,最后通过分层开发完成各需求后端功能,覆盖权限校验、数据处理与接口编写。 本节…