STM32 软件触发ADC采集

图片

0.91寸OLED屏幕大小的音频频谱,炫酷!

STM32另一个很少人知道的的功能——时钟监测

晶振与软件的关系(深度理解)

STM32单片机一种另类的IO初始化方法

ADC是一个十分重要的功能,几乎任何一款单片机都会包含这个功能(当然除了部分IO型芯片)。本文就通过stm32f103c8t6来学习一下ADC的操作流程,以最基本的软件触发ADC模式。

首先找到手册中ADC模块部分,如下图,就是ADC模块的相关框图,可以看到十分繁杂。

图片

那么对于软件触发ADC方式如何操作呢。

如下图,就是最基本的ADC采样方式,不经过外部触发,采样转换完成不触发中断。

图片

接下来一次介绍ADC的操作步骤。以ADC1的通道0为例。

有两个模块必不可少,一个是时钟,一个是GPIO。时钟存在于RCC模块中。

图片

stm32系列ADC的时钟来源于APB2时钟分频。先把APB2时钟分频到36M,然后将ADC时钟分频到12M,这样ADC时钟就配置好了。

图片

随后是GPIO的初始化,要实现ADC采集功能,将对应的GPIO设置成模拟输入模式。

void gpio_init(){    RCC->APB2ENR|=(1<<2)|(1<<9);//GPIOA时钟使能  GPIOA->CRL&=~(0X0F<<0);//PA0 模拟输入模式  }

接下来就是ADC模块的初始化了​​​​​​​

void adc_init(){  ADC1->CR2|=(1<<0);  ADC1->CR1&=~(0X0F<<16);//independent mode  //ADC1->CR1&=~(7<<13);//1个通道  //ADC1->CR1|=(1<<11);  ADC1->CR1&=~(1<<8);//扫描模式关闭  
  ADC1->CR2|=(1<<20);  ADC1->CR2|=(7<<17);    ADC1->CR2&=~(1<<11);//right align    ADC1->CR2|=(1<<3);  while(ADC1->CR2&(1<<3));  ADC1->CR2|=(1<<2);  while(ADC1->CR2&(1<<2));    ADC1->CR2&=~(1<<1);      ADC1->SMPR2&=~(7<<0);  ADC1->SQR3&=~(0X1F<<0);  }

最后是控制ADC采集的过程。​​​​​​​

unsigned int start_adc(){  ADC1->CR2|=(1<<22);//开始转换  while(!(ADC1->SR&(1<<1)));  return(ADC1->DR);}

之前介绍过关于OLED的显示功能,那么我们就通过OLED将ADC采集到的值显示到OLED上。如下就是实际效果

STM32 软件触发ADC采集

数字电子技术电门电路之万物皆可与非门(掌握数字电路核心基础)

模拟信号和数字信号区别——其实数字信号是不存在的

0.96寸OLED屏幕控制器SSD1306详解

0.96寸OLED控制器SSD1306其他两种显示模式

STM32 | 精确控制PWM脉冲个数

炫彩LED

微距下的蓝牙耳机

频率与周期的精密控制——用SPI输出PWM脉冲

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

信息安全工程师(13)网络攻击一般过程

前言 网络攻击的一般过程是一个复杂且系统化的行为&#xff0c;其目标往往在于未经授权地访问、破坏或窃取目标系统的信息。 一、侦查与信息收集阶段 开放源情报收集&#xff1a;攻击者首先会通过搜索引擎、社交媒体、论坛等公开渠道获取目标的基本信息&#xff0c;如姓名、地址…

Pytest-如何将allure报告发布至公司内网

原理简介 使用Python启动HTTP服务器&#xff0c;指定一个端口号port&#xff0c;内网用户可以使用ipport访问报告。 本文章继续进阶&#xff0c;简单使用nginx进行一个代理&#xff0c;使用域名可以直接访问报告。 前情概述 Pytest-allure如何在测试完成后自动生成完整报告&am…

Axure大屏可视化模板:跨领域数据分析平台原型案例

随着信息技术的飞速发展&#xff0c;数据可视化已成为各行各业提升管理效率、优化决策过程的重要手段。Axure作为一款强大的原型设计工具&#xff0c;其大屏可视化模板在农业、园区、城市、企业数据可视化、医疗等多个领域得到了广泛应用。本文将通过几个具体案例&#xff0c;展…

生成PPT时支持上传本地的PPT模板了!

制作 PPT 时想要使用特定的 PPT 模板&#xff1f; 现在&#xff0c;歌者 PPT 的「自定义模板功能」已全面升级&#xff01;你可以轻松上传自己的本地 PPT 模板&#xff0c;无论是公司统一风格的模板&#xff0c;还是带有个人设计风格的模板&#xff0c;都能无缝导入歌者 PPT。…

什么是大数据?初学者快速入门手册

“大数据”这个词有点用词不当&#xff0c;因为它意味着预先存在的数据在某种程度上是小的&#xff08;事实并非如此&#xff09;&#xff0c;或者唯一的挑战是其庞大的规模&#xff08;规模是其中之一&#xff0c;但通常还有更多&#xff09;。简而言之&#xff0c;“大数据”…

预计2030年全球GO电工钢市场规模将达到120.6亿美元

GO电工钢&#xff0c;又称为冷轧取向电工钢。GO电工钢按重量计含硅量至少为0.6%&#xff0c;含碳量不超过0.08%&#xff0c;可含有不超过1.0%的铝&#xff0c;所含其他元素的比例并不使其具有其他合金钢的特性&#xff1b;厚度不超过0.56毫米&#xff1b;呈卷状的&#xff0c;则…

Mac端口扫描工具

文章目录 端口扫描工具域名/ip转换Lookupping功能端口扫描 端口扫描工具 Mac内置了一个网络工具 网络使用工具 按住 Command 空格 然后搜索 “网络实用工具” 或 “Network Utility” 即可 域名/ip转换Lookup ping功能 端口扫描 参考文献 端口扫描工具

小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(1)数字电路基础

目录 一、信号特征 二、组合逻辑电路和时序逻辑电路 1、组合逻辑电路 2、时序逻辑线路 三、信号转换 1、数字集成电路的分类 2、常用电平接口技术 四、可编程逻辑器件 flechazohttps://www.zhihu.com/people/jiu_sheng 小柴冲刺嵌入式系统设计师系列总目录https://blo…

使用 TypeScript 接口优化数据结构

在现代软件开发中&#xff0c;数据结构的设计至关重要&#xff0c;它直接影响到程序的性能和可维护性。TypeScript 作为一种静态类型的超集&#xff0c;为 JavaScript 带来了类型系统&#xff0c;使得开发者可以在编译时期就发现潜在的类型错误。本文将探讨如何利用 TypeScript…

uboot无法使用nfs下载文件的问题

一、系统环境 见这篇博客。 二、问题描述 uboot使用nfs下载文件出现 “T T T”&#xff0c;一直无法下载 三、解决方法 编辑/etc/nfs.conf文件&#xff1a; sudo xed /etc/nfs.conf开启udp: udpy之后重启nfs服务器&#xff1a; sudo /etc/init.d/nfs-kernel-server re…

使用GLib进行C语言编程的实例

本文将讨论使用GLib进行编程的基本步骤&#xff0c;GLib是一个跨平台的&#xff0c;用C语言编写的3个底层库(以前是5个)的集合&#xff0c;GLib提供了多种高级的数据结构&#xff0c;如内存块、双向和单向链表、哈希表等&#xff0c;GLib还实现了线程相关的函数、多线程编程以及…

知识库管理系统的未来趋势:从单一平台到生态系统

在数字化浪潮的推动下&#xff0c;知识库管理系统&#xff08;Knowledge Base Management System, KBMS&#xff09;正逐步从传统的单一平台向更加开放、灵活、智能的生态系统转变。这一转变不仅体现了技术进步的必然结果&#xff0c;也深刻反映了市场需求的变化。本文将分析随…

如何使用GLib的单向链表GSList

单向链表是一种基础的数据结构&#xff0c;也是一种简单而灵活的数据结构&#xff0c;本文讨论单向链表的基本概念及实现方法&#xff0c;并着重介绍使用GLib的GList实现单向链表的方法及步骤&#xff0c;本文给出了多个实际范例源代码&#xff0c;旨在帮助学习基于GLib编程的读…

基于飞腾平台的OpenCV的编译与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

【LIO-SAM】LIO-SAM论文翻译(2020年)

【LIO】LIO-SAM论文翻译&#xff08;2020年&#xff09; 1&#xff0e;Abstract&#xff12;&#xff0e;INTRODUCTION&#xff14;&#xff0e;通过平滑和映射实现激光雷达惯性里程计A. 系统概述B. IMU Preintegration Factor&#xff08;推导过程参阅&#xff09;C. Lidar Od…

【我的 PWN 学习手札】fastbin reverse into tcache —— tcache key 绕过

目录 前言 一、tcache reverse into tcache 二、测试与模板 前言 之前提到过&#xff0c;较高版本的 glibc&#xff0c;设置了 key 对 tcachebin 内的 double free 进行了检查。 除了前面几篇手札罗列的绕过方法&#xff0c;今天又遇到一个&#xff0c;特此记录。之前利用…

Go 1.19.4 序列化和反序列化-Day 16

1. 序列化和反序列化 1.1 序列化 1.1.1 什么是序列化 序列化它是一种将程序中的数据结构&#xff08;map、slice、array等&#xff09;或对象状态转换成一系列字节序列的过程&#xff0c;这些字节可以被存储或通过网络发送。 在GO中&#xff0c;序列化通常涉及到将结构体或其…

VirtualBox+Vagrant快速搭建Centos7系统【最新详细教程】

VirtualBoxVagrant快速搭建Centos7系统 &#x1f4d6;1.安装VirtualBox✅下载VirtualBox✅安装 &#x1f4d6;2.安装Vagrant✅下载Vagrant✅安装 &#x1f4d6;3.搭建Centos7系✅初始化Vagrantfile文件生成✅启动Vagrantfile文件✅解决 vagrant up下载太慢的问题✅配置网络ip地…

Apache Iceberg Architecture—Iceberg 架构详解

Apache Iceberg Architecture Apache Iceberg 的架构可以分为三个主要层次&#xff1a;Iceberg Catalog、元数据层和数据层。 一、 Iceberg Catalog&#xff08;目录&#xff09; Iceberg Catalog 是 Iceberg 的顶层组件&#xff0c;负责管理所有 Iceberg 表的元数据和元数据操…

HTML常用的文本标签

常用文本标签 <span>: 元素没有特定含义 <b>: 定义粗体文字 <i>: 定义斜体文字 <em>: 定义着重文字 <strong>: 定义加重语气 <del>: 定义删除字 <span>文本标签</span><br><b>文本标签</b><b…