当前位置: 首页 > 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;但对于单线程…...

Python与OPC UA实战:高效读写PLC数据

1. 为什么选择Python操作OPC UA&#xff1f; 在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;就像工厂的"大脑"&#xff0c;而OPC UA则是让这个大脑与其他系统对话的"普通话"。作为Python开发者&#xff0c;我们经常需要从PLC读…...

2026年Java面试最常被问的1000道题目及参考答案

Java学到什么程度可以面试工作&#xff1f; 要达到能够面试Java开发工作的水平&#xff0c;需要掌握以下几个方面的知识和技能&#xff1a; 1. 基础扎实&#xff1a;熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础&#xff0c;也…...

论文详解 | 基于轨迹数据的多层空间交互网络动态社区发现与时序分析

论文详解 | 基于轨迹数据的多层空间交互网络动态社区发现与时序分析 一、论文基础信息与核心概述 1.1 论文基础信息 项目 详情 论文标题 Dynamical community detection and spatiotemporal analysis in multilayer spatial interaction networks using trajectory data 1.2 …...

VBA循环到底用For、Do While还是Do Until?看完这篇别再傻傻分不清

VBA循环结构深度解析&#xff1a;如何精准选择For、Do While与Do Until&#xff1f; 刚接触VBA时&#xff0c;看到各种循环结构总让人眼花缭乱——For循环、For Each、Do While、Do Until...它们看起来都能完成相似的任务&#xff0c;但实际编码中选错循环类型&#xff0c;轻则…...

私域数据安全与合规——企微引流必须注意的5个技术红线

做公域引流到企微&#xff0c;数据安全和合规是技术团队必须重视的问题。一旦踩红线&#xff0c;轻则功能受限&#xff0c;重则企微封禁甚至法律风险。今天梳理5个技术红线及应对方案。红线1&#xff1a;用户隐私数据存储企微API返回的用户信息包含ExternalUserID&#xff08;外…...

万象视界灵坛惊艳效果展示:同一张宠物图在‘金毛犬’‘幼犬’‘户外玩耍’‘毛发蓬松’多维排序

万象视界灵坛惊艳效果展示&#xff1a;同一张宠物图在"金毛犬""幼犬""户外玩耍""毛发蓬松"多维排序 1. 效果展示开场 今天我要向大家展示万象视界灵坛这个神奇工具的实际效果。它就像一个视觉魔法师&#xff0c;能够深入理解图片中的…...

5分钟掌握高效网页完整截图:告别手动拼接的烦恼

5分钟掌握高效网页完整截图&#xff1a;告别手动拼接的烦恼 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension …...

为什么你的`@jit(cache=True)`反而变慢了?Python 3.14 JIT缓存键生成算法变更深度解析(附3.13→3.14 ABI不兼容警告)

第一章&#xff1a;Python 3.14 JIT 编译器性能调优 面试题汇总Python 3.14 引入了实验性内置 JIT&#xff08;Just-In-Time&#xff09;编译器&#xff0c;基于 PGO&#xff08;Profile-Guided Optimization&#xff09;与轻量级字节码重写机制&#xff0c;在 CPU-bound 场景下…...

告别外挂EEPROM:手把手教你用AUTOSAR Fee模块在MCU内部Flash存数据(附Vector DaVinci配置)

告别外挂EEPROM&#xff1a;用AUTOSAR Fee模块实现MCU内部Flash数据存储实战指南 在汽车电子控制单元&#xff08;ECU&#xff09;开发中&#xff0c;非易失性数据存储一直是硬件选型的重要考量点。传统方案往往需要外挂一颗EEPROM芯片来存储参数、标定值和故障码等关键数据&am…...

新手福音:无需github,在快马平台轻松入门第一个web应用

最近在学前端开发时&#xff0c;发现很多教程都推荐从GitHub克隆项目来练习&#xff0c;但GitHub经常访问不稳定&#xff0c;对新手特别不友好。好在发现了InsCode(快马)平台&#xff0c;不用折腾GitHub就能直接上手写代码&#xff0c;特别适合我这种刚入门的小白。今天就用它做…...