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

芯旺微KF32A156芯片ADC配置

        使用芯旺微KF32A156的芯片做预研项目,使用了ADC0外设,根据芯片规格书中的描述进行了配置:

/*** @brief: Configure ADC.**  @param[in]  none.*  @param[in]  none.*  @param[out] None* @retval: None*/
static void adc_peripheral_init(void) {ADC_InitTypeDef ADC_InitStructure;ADC_Reset(ADC0_SFR);ADC_InitStructure.m_Clock = ADC_HFCLK;ADC_InitStructure.m_ClockDiv = ADC_CLK_DIV_2;ADC_InitStructure.m_ScanMode = TRUE;ADC_InitStructure.m_ContinuousMode = ADC_SINGLE_MODE;ADC_InitStructure.m_DataAlign = ADC_DATAALIGN_RIGHT;ADC_InitStructure.m_ExternalTrig_EN = TRUE;ADC_InitStructure.m_HPExternalTrig_EN = FALSE;ADC_InitStructure.m_ExternalTrig = ADC_EXTERNALTRIG_T1TRGO;ADC_InitStructure.m_VoltageRef = ADC_REF_AVDD;ADC_InitStructure.m_NumOfConv = ADC_CH_NUM_MAX;ADC_InitStructure.m_NumOfHPConv = 0;ADC_Configuration(ADC0_SFR, &ADC_InitStructure);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_14, 0x01);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_15, 0x02);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_58, 0x03);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_60, 0x04);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_68, 0x05);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_69, 0x06);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_70, 0x07);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_72, 0x08);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_76, 0x09);ADC_Regular_Channel_DMA_Cmd(ADC0_SFR, TRUE);ADC_Cmd(ADC0_SFR, TRUE);/* 使能AD 后,延迟大概5us 后,再去给触发信号去触发AD 转换 */systick_delay_ms(1);}

  发现采样结果一直异常,之后进入到初始化配置函数,发现如下代码:

    /*---------------- 设置ADC_HSCANSQ寄存器 ----------------*//* 根据结构体成员m_NumOfHPConv,设置HSLEN位域 */tmpreg = (adcInitStruct->m_NumOfHPConv - 1) << ADC_SCANCTL_HSLEN0_POS;ADCx->SCANCTL = SFR_Config (ADCx->SCANCTL,~ADC_SCANCTL_HSLEN,tmpreg);

     这是高级转换通道的数量,因为不使用,所以配置了0,但是这里进行了减1的操作, tmpreg是uint32_t 类型的,tmpreg十六进制数就是0xFFFFFFF0,而SFR_Config的定义如下:

/* 写特殊功能寄存器 */
static inline uint32_t SFR_Config(uint32_t SfrMem, uint32_t SfrMask, uint32_t WriteVal)
{return ((SfrMem & SfrMask) | (WriteVal));
}

所以不使能高优先级通道转速时,m_NumOfHPConv 不能配置为0,需要配置为1;正确配置如下:

/*** @brief: Configure ADC.**  @param[in]  none.*  @param[in]  none.*  @param[out] None* @retval: None*/
static void adc_peripheral_init(void) {ADC_InitTypeDef ADC_InitStructure;ADC_Reset(ADC0_SFR);ADC_InitStructure.m_Clock = ADC_HFCLK;ADC_InitStructure.m_ClockDiv = ADC_CLK_DIV_2;ADC_InitStructure.m_ScanMode = TRUE;ADC_InitStructure.m_ContinuousMode = ADC_SINGLE_MODE;ADC_InitStructure.m_DataAlign = ADC_DATAALIGN_RIGHT;ADC_InitStructure.m_ExternalTrig_EN = TRUE;ADC_InitStructure.m_HPExternalTrig_EN = FALSE;ADC_InitStructure.m_ExternalTrig = ADC_EXTERNALTRIG_T1TRGO;ADC_InitStructure.m_VoltageRef = ADC_REF_AVDD;ADC_InitStructure.m_NumOfConv = ADC_CH_NUM_MAX;ADC_InitStructure.m_NumOfHPConv = 1;//不能为0ADC_Configuration(ADC0_SFR, &ADC_InitStructure);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_14, 0x01);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_15, 0x02);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_58, 0x03);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_60, 0x04);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_68, 0x05);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_69, 0x06);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_70, 0x07);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_72, 0x08);ADC_Regular_Channel_Config(ADC0_SFR, ADC_CHANNEL_76, 0x09);ADC_Regular_Channel_DMA_Cmd(ADC0_SFR, TRUE);ADC_Cmd(ADC0_SFR, TRUE);/* 使能AD 后,延迟大概5us 后,再去给触发信号去触发AD 转换 */systick_delay_ms(1);}

相关文章:

芯旺微KF32A156芯片ADC配置

使用芯旺微KF32A156的芯片做预研项目&#xff0c;使用了ADC0外设&#xff0c;根据芯片规格书中的描述进行了配置&#xff1a; /*** brief: Configure ADC.** param[in] none.* param[in] none.* param[out] None* retval: None*/ static void adc_peripheral_init(void) …...

【Token】校验、会话技术、登录请求、拦截器【期末实训】实战项目学生和班级管理系统\Day15-后端Web实战(登录认证)\讲义

登录认证 在前面的课程中&#xff0c;我们已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;我们并没有登录&#xff0c;就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的&#xff0c;所以我们今天的主题就是登录认证。 最终我们要实现…...

[Unity Shader] 【游戏开发】【图形渲染】Shader数学基础3:矢量与标量的乘法与除法详解

在计算机图形学和Shader编程中,矢量(Vector)运算是非常基础的数学知识。其中,矢量与标量(Scalar)的乘法与除法是常见的操作。本篇文章将通过详细分析,以及实例讲解矢量和标量的乘除法运算,帮助大家更好地理解并应用到实际开发中。 什么是矢量与标量? 在开始具体运算之…...

javalock(四)AQS派生类之Semphore逐行注释

简单概括&#xff1a; Semphore是一把共享锁&#xff08;即读锁&#xff09;&#xff0c;即实现了AQS的tryAcquireShared&&tryReleaseShared函数Semphore的逻辑是这样&#xff1a; 创建semphore的时候会初始化一个锁容量即permits&#xff0c;即最多同时允许permits个…...

【C语言】头文件”“和<>的详解

前言 作者在刚开始学C语言的时候&#xff0c;都是用的< >去引用头文件&#xff0c;但在学习STM32的时候发现&#xff0c;程序中大量使用" "去引用双引号。 那么二者有什么区别呢? 无论使用哪种方式&#xff0c;头文件的目的都是为了引用你需要的文件供你编程使…...

Elasticsearch:什么是信息检索?

信息检索定义 信息检索 (IR) 是一种有助于从大量非结构化或半结构化数据中有效、高效地检索相关信息的过程。信息&#xff08;IR&#xff09;检索系统有助于搜索、定位和呈现与用户的搜索查询或信息需求相匹配的信息。 作为信息访问的主要形式&#xff0c;信息检索是每天使用…...

Spark-Streaming容错语义

一、背景 为了理解Spark Streaming提供的语义&#xff0c;我们先回顾西Spark RDD的基本容错语义学。 RDD是一个不可变的、确定性可重新计算的分布式数据集。每个RDD都记住在容错输入数据集上用于创建它的确定性操作的沿袭。如果RDD的任何分区由于工作节点故障而丢失&#xff…...

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程 产品介绍 仿东郊到家约玩系统是一种新兴的线上预约&#xff0c;线下社交、陪伴、助娱、助攻、分享、解答、指导等服务模式&#xff0c;范围涉及电竞、运动、音乐…...

GUI07-学工具栏,懂MVC

MVC模式&#xff0c;是天底下编写GUI程序最为经典、实效的一种软件架构模式。当一个人学完菜单栏、开始学习工具栏时&#xff0c;就是他的一生中&#xff0c;最适合开始认识 MVC 模式的好时机之一。这节将安排您学习&#xff1a; Model-View-Controller 模式如何创建工具栏以及…...

【进程篇】04.进程的状态与优先级

一、进程的状态 1.1 进程的状态 1.1.1 并行与并发 • 并行: 多个进程在多个CPU下分别&#xff0c;同时进行运行 • 并发: 多个进程在一个CPU下采用进程切换的方式&#xff0c;在一个时间片内&#xff0c;让多个进程都得以推进 1.1.2 时间片的概念 LInux/windows这些民用级别…...

ElasticSearch 数据聚合与运算

1、数据聚合 聚合&#xff08;aggregations&#xff09;可以让我们极其方便的实现数据的统计、分析和运算。实现这些统计功能的比数据库的 SQL 要方便的多&#xff0c;而且查询速度非常快&#xff0c;可以实现近实时搜索效果。 注意&#xff1a; 参加聚合的字段必须是 keywor…...

科研学习|论文解读——智能体最新研究进展

从2024-12-13到2024-12-18的45篇文章中精选出5篇优秀的工作分享 Can Modern LLMs Act as Agent Cores in Radiology~Environments? Achieving Collective Welfare in Multi-Agent Reinforcement Learning via Suggestion Sharing A systematic review of norm emergence in …...

面试小札:Java后端闪电五连鞭_8

1. Kafka消息模型及其组成部分 - 消息&#xff08;Message&#xff09;&#xff1a;是Kafka中最基本的数据单元。消息包含一个键&#xff08;key&#xff09;、一个值&#xff08;value&#xff09;和一个时间戳&#xff08;timestamp&#xff09;。键可以用于对消息进行分区等…...

java error(2)保存时间带时分秒,回显时分秒变成00:00:00

超简单&#xff0c;顺带记录一下 1.入参实体类上使用注释&#xff1a;JsonFormat(pattern “yyyy-MM-dd”) 导致舍弃了 时分秒的部分。 2.数据库字段对应的类型是 date。date就是日期&#xff0c;日期就不带时分秒。 3.返参实体类使用了JsonFormat(pattern “yyyy-MM-dd”) 导…...

计算机毕业设计python+spark+hive动漫推荐系统 漫画推荐系统 漫画分析可视化大屏 漫画爬虫 漫画推荐系统 漫画爬虫 知识图谱 大数据毕设

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

数字IC后端设计实现篇之TSMC 12nm TCD cell(Dummy TCD Cell)应该怎么加?

TSMC 12nm A72项目我们需要按照foundary的要求提前在floorplan阶段加好TCD Cell。这个cell是用来做工艺校准的。这个dummy TCD Cell也可以等后续Calibre 插dummy自动插。但咱们项目要求提前在floorplan阶段就先预先规划好位置。 TSCM12nm 1P9M的metal stack结构图如下图所示。…...

(8)YOLOv6算法基本原理

一、YOLOv6 模型原理 发布日期&#xff1a;2022年6月 作者&#xff1a;美团技术团队 骨干网络&#xff1a;参考了 RepVGG 的设计&#xff0c;将重参数化能力进行补强&#xff0c;增强了模型结构的重参数化能力。使用了深度可分离卷积和跨阶段连接等技术&#xff0c;旨在提升…...

LNMP+discuz论坛

0.准备 文章目录 0.准备1.nginx2.mysql2.1 mysql82.2 mysql5.7 3.php4.测试php访问mysql5.部署 Discuz6.其他 yum源&#xff1a; # 没有wget&#xff0c;用这个 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo[rootlocalhost ~]#…...

在linux系统的docker中安装GitLab

一、安装GitLab&#xff1a; 在安装了docker之后就是下载安装GitLab了&#xff0c;在linux系统中输入命令&#xff1a;docker search gitlab就可以看到很多项目&#xff0c;一般安装第一个&#xff0c;它是英文版的&#xff0c;如果英文不好可以安装twang2218/gitlab-ce-zh。 …...

Python面试常见问题及答案12

问题&#xff1a; 请解释Python中的GIL&#xff08;全局解释器锁&#xff09;是什么&#xff1f; ○ 答案&#xff1a; GIL是Python解释器中的一种机制&#xff0c;用于确保任何时候只有一个线程在执行Python字节码。这在多线程场景下可能影响性能优化&#xff0c;但对于单线程…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...