stm32的ADC采样率如何通过Time定时器进行控制

ADC采样率是个跟重要的概念.
手册上说可以通过Timer定时器进行触发ADC采样.
可我这边悲剧的是, 无论怎么样. ADC都会进行采样. 而且就算是TIM停掉也是一样会进行采样. 这就让我摸不着头脑了…

我想通过定时器动态更改ADC的采样频率. 结果不随我愿…

这到底是什么问题呢?

一开始我的设置是
在这里插入图片描述
在这里插入图片描述
折腾了好久, 最后突然间明白了. TMD, 手册上说的是用Time触发, 触发并不代表用Time控制ADC的转换, ADC的转换还是按照ADC本身的时钟和你设置的转换周期进行转换. Timer信号来的时候开始转换而已.

而我前面的ADC1设置, 设置了连续转换. 也就是说, 只要开始了, 就不停. 所以, 启动以后跟Timer定时器就没啥毛关系了…所以ADC就不在受Timer控制了, 哎呀.真是!!! 瞬间清醒啊

改成下面这样的配置

在这里插入图片描述
把ADC的连续转换改成非连续转换. 让Time触发转换, 只转换一次, 下次再采样,还是由Time来控制. 这样就可以用Time来控制转换率了

诡异之一
然后又遇到一个诡异的事情…sizeof( ) 求数组大小的这个函数, 得到的结果竟然会变…
对应的是同一个数组ADC_Values[]…
代码如下

 #define ADCValuesLength 1200  uint16_t ADC_Values[ADCValuesLength]  = {1, 2, 3, 4, 5, 6};//在循环中这个 aaa 竟然时不时的会变成其它数值, 明明是1200, 为何会变成 volatile int aaa = sizeof(ADC_Values); HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_Values, aaa); // 启动DMA

在循环中这个 aaa 竟然时不时的会变成其它数值, 明明是1200, 为何会变?
我估计sizeof函数是根据内容进行判断的, 遇到特殊数值就回来了.
所以 HAL_ADC_Start_DMA 这里最后一个参数必须得写死.不能动态的根据sizeof来求数组的大小.

**诡异之二 ADC多通道扫描取得的数据顺序竟然会乱. **
我只用了2个通道, 规则扫描的, 后来竟然发现. 会乱掉. 这就问题大了. 后来在网上根据他人的经验, 估计是时钟启动顺序有问题. 然后我的代码就改成了, 先停止时钟, 再停止DMA, 然后处理完之后先开启ADC,再开启ADC的DMA, 最后开启Time定时器触发数据转换.
在这里插入图片描述

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

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

相关文章

【精选】VMware部署ESXI6.5 vCenter Server详解

VMware部署ESXI6.5 vCenter Server 一、ESXi主机介绍1、虚拟机的好处2、为什么要使用虚拟机 二、虚拟化服务器概述1、VSphere物理架构2、体系架构3、VMware vSphere 组件 三、ESXi安装环境1、安装步骤2、使用VMware新建ESXi主机3、初始环境安装 四、创建虚拟机五、安装部署VMwa…

OpenCV常用功能——灰度处理和图像二值化处理

文章目录 一、灰度处理1.1 cvtColor函数 二、图像二值化处理2.1 全局阈值2.2 自适应阈值 一、灰度处理 1.1 cvtColor函数 函数原型: cv2.cvtColor(src, code[, dst[, dstCn]]) -> dst功能:转换图像颜色空间。 参数: src: 输入图像。co…

python之计算平面点集的的面积

在当今数据驱动的世界中,计算平面点集的最小外接轮廓面积被广泛应用于各种实际场景中。它是一项重要而魅力十足的任务,旨在找到一个最小的矩形或多边形区域,能够完全包围给定的离散点集。这个看似简单的问题背后隐藏着许多挑战,需…

轻量封装WebGPU渲染系统示例<7>-材质多pass(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 …

qt开源版和企业版下载

企业版可以在官网下载 没有licence qmake无法编译提示QT License check failed! Giving up… Qt5\5.15.1\msvc2019_64\mkspecs\qconfig.pri把这个文件中的倒数第二行liccheck.exe这几个字符删掉就可以 开源版需要使用下载器下载 详解QT6.5在线下载—使用国内镜像_qt镜像下载…

SpringBoot拉取高德天气预报数据

SpringBoot拉取高德天气预报数据 一、账号申请 1.整体流程 天气文档:https://lbs.amap.com/api/webservice/guide/api/weatherinfo 整体流程可参考:https://lbs.amap.com/api/webservice/guide/create-project/get-key 2.注册账号 注册地址&#x…

华为机试题:HJ7 取近似值

目录 第一章、算法题1.1)题目描述1.2)第一种解题思路与答案1.3)第二种解题思路与答案1.4)牛客链接 友情提醒: 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。 第一章、算法…

git建仓库小记

git建仓库小记 1.新建远端git仓库2.新建本地仓库3.添加ssh key4.将本地仓库关联到远端5.push & pull 每次新建git项目的时候都要翻翻之前收藏的几篇帖子,索性自己汇总一下记录,以后一次粘贴搞定。 1.新建远端git仓库 这个比较简单,网页…

腾讯云轻量应用服务器地域怎么选择比较好?

腾讯云轻量应用服务器地域怎么选比较好?腾讯云轻量应用服务器地域是指轻量服务器数据中心所在的地理位置,如上海、广州和北京等地域,如何选择地域?腾讯云百科txybk.com关于地域的选择建议就近原则,用户距离轻量服务器地域越近&am…

Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案

Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案。 报错内容如下: 2023-10-26T09:35:41.190459839Z Traceback (most recent call last): 2023-10-26T09:35:41.190502589Z File “lib/task/compute.py”, line 621, i…

腾讯云国际-如何使用对象存储COS在 CKafka 控制台创建数据异步拉取任务?腾讯云代充

操作场景 Datahub 支持接入各种数据源产生的不同类型的数据,统一管理,再分发给下游的离线/在线处理平台,构建清晰的数据通道。 本文以 COS 数据为例介绍如何在 CKafka 控制台创建数据异步拉取任务,并对任务进行修改配置&#xf…

leetcode_98复原IP地址

1. 题意 给一个只包含数字的字符串&#xff0c;将它还原成合法的IP串。 复原IP地址 2. 题解 回溯列举所有的字符串可能&#xff0c;对长度和数值进行剪枝。 代码 class Solution { public:bool isValidSec(string &str, int len){if ( len > 3 || len < 1)retur…

Java关于实例对象调用静态变量和静态方法问题

直接去看原文 原文链接:Java关于实例对象调用静态变量和静态方法问题_java对象可以调用static方法吗_骑个小蜗牛的博客-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- 实例…

STM32H750之FreeRTOS学习--------(二)任务的创建和删除

FreeRTOS 二、任务的创建和删除 任务创建 动态方式创建任务 BaseType_t xTaskCreate ( TaskFunction_t pxTaskCode, /* 指向任务函数的指针 */ const char * const pcName, /* 任务名字&#xff0c;最大长度configMAX_TASK_NAME_LEN */const configSTACK_…

STM32F103的GPIO

文章目录 STM32F103的地址STM32F103的GPIOA的地址推算 STM32F103的地址 GPIO 都是挂载在 APB2 总线之上。 STM32F103的GPIOA的地址推算 &#xff08;出自STM32F103开发指南P127&#xff09; GPIOA 的 7 个寄存器都是 32 位的&#xff0c;所以每个寄存器占有 4个地址&#x…

MES的物料管理

----物料管理的定义和作用---- 物料管理在制造执行系统&#xff08;MES&#xff09;中扮演着至关重要的角色。通过有效的物料管理&#xff0c;企业可以实现生产过程的高效性、准确性和可靠性&#xff0c;从而提高生产效率并降低成本。 一、物料管理的定义 物料管理是指对生产过…

Fabric.js 复制粘贴元素

本文简介 点赞 关注 收藏 学会了 当你要复制一个 fabric 的元素时&#xff0c;你考虑到的是什么&#xff1f;是深拷贝当前选中对象再添加到画布中&#xff1f; 其实&#xff0c;fabric.js 提供了一个克隆方法&#xff0c;在 fabric.js 官网的案例里也有这个demo&#xff1a…

分布式消息队列:Rabbitmq(2)

目录 一:交换机 1:Direct交换机 1.1生产者端代码: 1.2:消费者端代码: 2:Topic主题交换机 2.1:生产者代码: 2.2:消费者代码: 二:核心特性 2.1:消息过期机制 2.1.1:给队列中的全部消息指定过期时间 2.1.2:给某条消息指定过期时间 2.2:死信队列 一:交换机 1:Direct交…

elasticsearch-5.6.15集群部署,如何部署x-pack并添加安全认证

目录 一、环境 1、JDK、映射、域名、三墙 2、三台服务器创建用户、并为用户授权 二、配置elasticsearch-5.6.15实例 1、官网获取elasticsearch-5.6.15.tar.gz&#xff0c;拉取到三台服务器 2、elas环境准备 3、修改elasticsearch.yml配置 4、修改软、硬件线程数 5、修改…

GAMP源码阅读(中)伪距单点定位 SPP

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、SPP 解算1、spp()&#xff1a;单点定位主入口函数2、estpos()3、estpose_()4、valsol()&#xff1a;GDOP和卡方检验结果有效性 二、卫星位置钟…