当前位置: 首页 > news >正文

stm32使用单通道规则组ADC

Driver_ADC.c

如果需要关闭adc转换,只需要设置CNT,将其置为0,后面再转换一次就停止了。

#include "Driver_ADC.h"void Driver_ADC1_Init(void)
{/* 1. 时钟配置 *//* 1.1 adc时钟 */RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;RCC->CFGR |= RCC_CFGR_ADCPRE_1;RCC->CFGR &= ~RCC_CFGR_ADCPRE_0;/* 1.2 gpio的时钟 */RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;/* 2. gpio工作模式: PC0 模拟输入  CNF=00 MODE=00 */GPIOC->CRL &= ~(GPIO_CRL_CNF0 | GPIO_CRL_MODE0);/* 2. ADC相关配置 *//* 2.1 禁用扫描模式. 只有一个通道不用扫描 */ADC1->CR1 &= ~ADC_CR1_SCAN;/* 2.2 启用连续转换模式 CR2=CONT 1*/ADC1->CR2 |= ADC_CR2_CONT;/* 2.3 数据对齐方式: 右对齐 左对齐 */ADC1->CR2 &= ~ADC_CR2_ALIGN;/* 2.4 设置采样时间 ADC_SMPR1  010=13.5周期*/ADC1->SMPR1 &= ~(ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_0);ADC1->SMPR1 |= ADC_SMPR1_SMP10_1;/* 2.6 通道组的配置 *//* 2.6.1 配置几个通道需要转换 */ADC1->SQR1 &= ~ADC_SQR1_L;/* 2.6.1 把通道号配置到组里面.  */ADC1->SQR3 &= ~ADC_SQR3_SQ1; /* 先把5位清零 */ADC1->SQR3 |= 10 << 0;       /* 设置最后5位 *//* 2.7 选择软件触发 */ADC1->CR2 |= ADC_CR2_EXTTRIG; /* 开启规则组的外部转换 */ADC1->CR2 |= ADC_CR2_EXTSEL;  /* 选择使用软件触发ADC */
}void Driver_ADC1_StartConvert(void)
{/* 1. 上电: 把ADC从休眠模式唤醒 */ADC1->CR2 |= ADC_CR2_ADON;/* 2. 执行校准 */ADC1->CR2 |= ADC_CR2_CAL;while (ADC1->CR2 & ADC_CR2_CAL);/* 3. ADON = 1, 开始转换 0>1 从休眠模式唤醒 1->1 开始 */ADC1->CR2 |= ADC_CR2_ADON;/* 4. 使用软件开始转换规则通道 */;ADC1->CR2 |= ADC_CR2_SWSTART;/* 5. 等待首次转换完成 */while((ADC1->SR & ADC_SR_EOC) == 0);}double Driver_ADC1_ReadV(void)
{// 12位的ADC 范围 [0, 4095]return ADC1->DR * 3.3 / 4095;
}

Driver_ADC.h

#ifndef __DRIVER_ADC_H
#define __DRIVER_ADC_H#include "stm32f10x.h"void Driver_ADC1_Init(void);void Driver_ADC1_StartConvert(void);double Driver_ADC1_ReadV(void);
double Driver_ADC1_ReadV(void);#endif

main.c

#include "Driver_USART.h"#include "Delay.h"
#include "Driver_ADC.h"int main()
{Driver_USART1_Init();printf("ADC单通道\r\n");Driver_ADC1_Init();Driver_ADC1_StartConvert();while (1){double v = Driver_ADC1_ReadV();printf("v = %.2f\r\n", v);Delay_s(1);}
}

相关文章:

stm32使用单通道规则组ADC

Driver_ADC.c 如果需要关闭adc转换&#xff0c;只需要设置CNT&#xff0c;将其置为0&#xff0c;后面再转换一次就停止了。 #include "Driver_ADC.h"void Driver_ADC1_Init(void) {/* 1. 时钟配置 *//* 1.1 adc时钟 */RCC->APB2ENR | RCC_APB2ENR_ADC1EN;RCC-&g…...

[python][whl]causal-conv1d的python模块在windows上whl文件下载

【模块介绍】 causal-conv1d&#xff0c;即因果一维卷积&#xff08;Causal 1D Convolution&#xff09;&#xff0c;是一种在深度学习特别是时序数据处理中广泛应用的卷积技术。它主要特点在于其“因果性”&#xff0c;即输出的每个元素仅依赖于输入序列中它之前的元素&#…...

介绍 CM3leon,一个更高效、最先进的文本和图像生成模型

近几个月来&#xff0c;随着让机器理解和表达语言的自然语言处理技术以及可根据文本输入生成图像的系统的进步&#xff0c;人们对生成式人工智能模型的兴趣和研究也在加速。今天&#xff0c;我们要展示的是 CM3leon&#xff08;发音类似于 “变色龙”&#xff09;&#xff0c;它…...

HTTPS和HTTP有哪些区别

两者的主要区别在于安全性和数据加密&#xff1a; 加密层&#xff1a;HTTPS 在HTTP 的基础上增加了SSL/TLS 协议作为加密层&#xff0c;确保数据传输的安全性,即使数据被截获&#xff0c;没有相应的密钥也无法解读数据内容。而HTTP 数据传输是明文的&#xff0c;容易受到攻击。…...

Docker 安装 PostgreSQL

1. 启动 PostgreSQL 容器 docker run --name ffj-postgres -p 5432:5432 -e POSTGRES_PASSWORDCisc0123 -d postgres docker run&#xff1a;启动一个新的容器。--name指定容器名称为 ffj-postgres。-p 5432:5432&#xff1a;将主机的 5432 端口映射到容器的 5432 端口。-e P…...

实践致知第12享:如何新建一个Word并设置格式

一、背景需求 小姑电话说&#xff1a;要新建一个Word文档&#xff0c;并将每段的首行设置空2格。 二、解决方案 1、在电脑桌面上空白地方&#xff0c;点击鼠标右键&#xff0c;在下拉的功能框中选择“DOC文档”或“DOCX文档”都可以&#xff0c;如下图所示。 之后&#xff0…...

Rust vs Go: 特点与应用场景分析

目录 介绍Rust的特点Go的特点Rust的应用场景Go的应用场景总结 介绍 Rust和Go&#xff08;Golang&#xff09;是现代编程语言中两个非常流行的选择。凭借各自的独特优势和广泛的应用场景&#xff0c;吸引了大量开发者的关注。本文将详细介绍Rust和Go的特点&#xff0c;并探讨它…...

2024的开放式耳机排行榜,看这六个耳机选购的小Tips

寻找一款既能聊天又能听歌的耳机并不容易&#xff0c;但是开放式耳机可能会是一个理想的选择。与传统的入耳式耳机相比&#xff0c;开放式耳机可以让你更加自然地与周围环境互动&#xff0c;并且不容易掉落。当然&#xff0c;在市场上选择一款适合自己的开放式耳机也是至关重要…...

JAVA-报表模糊搜索询易实现

背景: 一般文件报表经常会需要搜各个表头对应内容&#xff0c;如果支持全部类型切换搜索&#xff0c;操作起来就不够便捷。而且这个报表是测试自己用的&#xff0c;准确性可以不用太要求&#xff0c;所以更想要那中输入关键字命中任意表记录内容的模糊匹配功能。 方法一:解析搜…...

牛客 7.13 月赛(留 C逆元)

B-最少剩几个&#xff1f;_牛客小白月赛98 (nowcoder.com) 思路 奇数偶数 奇数&#xff1b;奇数*偶数 奇数 所以在既有奇数又有偶数时&#xff0c;两者结合可以同时删除 先分别统计奇数&#xff0c;偶数个数 若偶个数大于奇个数&#xff0c;答案是偶个数-奇个数 若奇个数…...

FPGA之术语

FPGA之术语 IOSTANDARDDIFF_SSTL12:LVCMOS33:sys_clk_p/n:rst_n:UART时钟JTAG:GPIOONFIPCIe IOSTANDARD 在电子工程领域&#xff0c;DIFF_SSTL12和LVCMOS33是两种不同的电气标准&#xff0c;用于定义信号的电压级别和特性。 IOSTANDARD是一个在FPGA&#xff08;现场可编程门阵…...

WPF透明置顶窗口wine适配穿透问题解决

一、透明窗口全屏时&#xff0c;鼠标不穿透 问题描述 我有一个透明窗口&#xff0c;它是一个全屏置顶窗口&#xff0c;窗口里面有一个工具条&#xff0c;可以通过鼠标拖动工具条的位置&#xff0c;程序启动后&#xff0c;在不点击工具条的时候&#xff0c;鼠标是可以穿透的&a…...

浅析Kafka Streams中KTable.aggregate()方法的使用

KTable.aggregate() 方法是 Apache Kafka Streams API 中用于对流数据进行状态化聚合的核心方法之一。这个方法允许你根据一个键值&#xff08;通常是<K,V>类型&#xff09;的流数据&#xff0c;应用一个初始值和一个聚合函数&#xff0c;来累积和更新一个状态&#xff0…...

java word转pdf、word中关键字位置插入图片 工具类

java word转pdf、word中关键字位置插入图片 工具类 1.pom依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><dependency><groupId>org.apa…...

jail内部ubuntu apt升级失败问题解决

在FreeBSD jail 里安装启动Ubuntu jammy系统&#xff0c;每次装好执行jexec ubjammy sh进入Ubuntu系统后&#xff0c;执行apt update报错。 这个问题困惑了好久&#xff0c;突然有一天仔细去看报错信息&#xff0c;查看了(man 5 apt.conf) &#xff0c;才搞定问题。简单来说就是…...

迎接AI新时代:GPT-5的技术飞跃与未来展望

引言 随着人工智能技术的迅猛发展&#xff0c;大语言模型在过去几年取得了显著进步。OpenAI最新的声明表明&#xff0c;GPT-5将在一年半后发布&#xff0c;并将带来从高中生智力水平到博士生智力水平的飞跃。这一突破引起了科技界和公众的广泛关注。本文将从技术突破预测、智能…...

Snap Video:用于文本到视频合成的扩展时空变换器

图像生成模型的质量和多功能性的显著提升&#xff0c;研究界开始将其应用于视频生成领域。但是视频内容高度冗余&#xff0c;直接将图像模型技术应用于视频生成可能会降低运动的保真度和视觉质量&#xff0c;并影响可扩展性。来自 Snap 的研究团队及其合作者提出了 "Snap …...

实验8 视图创建与管理实验

一、实验目的 理解视图的概念。掌握创建、更改、删除视图的方法。掌握使用视图来访问数据的方法。 二、实验内容 在job数据库中&#xff0c;有聘任人员信息表&#xff1a;Work_lnfo表&#xff0c;其表结构如下表所示&#xff1a; 其中表中练习数据如下&#xff1a; 1.‘张明…...

C++ 开源库

1 PDFium PDFium 是一个开源的 PDF 渲染和处理库&#xff0c;最初由 Foxit Software 开发&#xff0c;并于2014年捐赠给了 Chromium 项目。PDFium 旨在为各种应用程序提供高效、灵活的 PDF 渲染和操作功能。 2 代码地址 https://github.com/chromium/pdfium 主要特性 渲染…...

LabVIEW滤波器性能研究

为了研究滤波器的滤波性能&#xff0c;采用LabVIEW设计了一套滤波器性能研究系统。该系统通过LabVIEW中的波形生成函数&#xff0c;输出幅值及频率可调的正弦波和白噪声两种信号&#xff0c;并将白噪声与正弦波叠加&#xff0c;再通过滤波器输出纯净的正弦波信号。系统通过FFT&…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...