最近开发一个12VBMS的项目,为了降成本和提高开发周期,硬件工程师选择了一款国产MCU作为主控,基本上能满足功能要求

项目主要模块就是AD采样,CAN报文发送,故障诊断

今天记录一下AD采样这部分

//===============================================
//ADC初始化函数
//===============================================
void adc_init(void)
{
//所有ADC引脚配置高阻输入
P0M1 |= 0x7c;
P0M0 &= ~0x7c;
P1M1 |= 0x03;
P1M0 &= ~0x03;
//ADC_CONTR |= 1<<4; //使能PWM
ADCTIM = 0x3f; //设置ADC内部时序
EADC=0; //禁止ADC转换中断
ADCCFG |= 1<<5; //转换结果右对齐
ADCCFG |= 0xC; //设置ADC时钟/2/16
ADC_CONTR |= 1<<7; //打开电源
delay_ms(10);
}
//===============================================
//ADC获取通道数字量,channelNum=0~15
//===============================================
unsigned short GetADCresult(unsigned char channelNum)
{
ADC_RES = 0;
ADC_RESL = 0; ADC_CONTR = (ADC_CONTR & 0xF0) | 0x40 | channelNum; //启动 AD 转换
_nop_();
_nop_();
_nop_();
_nop_(); while((ADC_CONTR & 0x20) == 0) ; //wait for ADC finish
ADC_CONTR &= ~0x20; //清除ADC结束标志
return (((unsigned short)ADC_RES << 8) + ADC_RESL);
}

后面根据要求,对通道结果进行滤波。

STC32G12K128-ADC的更多相关文章

  1. STM32之DMA+ADC

    借用小甲鱼的经典:各位互联网的广大网友们.大家早上中午晚上好..(打下小广告,因为小甲鱼的视频真的很不错).每次看小甲鱼的视频自学都是比较轻松愉快的..我在想,如果小甲鱼出STM32的视频,我会一集不 ...

  2. STM32之ADC+步骤小技巧(英文)

    神通广大的各位互联网的网友们.大家早上中午晚上好好好.今早起来很准时的收到了两条10086的扣月租的信息.心痛不已.怀着这心情.又开始了STM32的研究.早上做了计算机控制的PID实验,又让我想起了飞 ...

  3. [nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

    一.本实验ADC 配置 分辨率:10 位. 输入通道:5,即使用输入通道AIN5 检测电位器的电压. ADC 基准电压:1.2V. 二.NRF51822 ADC 管脚分布 NRF51822 的ADC ...

  4. 基于STM32Cube的ADC模数采样设计

    1.背景         此实验建立在STM32F429核心板基础上,对于深刻了解STM32Cube使用具有深刻意义.利用DMA进行ADC采样,具有速度快,极大减少CPU消耗的优势,对于数据采集系统具 ...

  5. ADC

    ADC转换分为两种通道组 1.规则通道组 2.注入通道组(可打断规则通道组) 工作模式 通道模式 转换模式 复位校准 AD校准

  6. 对ADC(DAC)的线性度(INL和DNL)的一点理解 [转]

    大家在使用ADC的时候,往往最关注位数,而对ADC的线性度往往会忽略. 其实这个线性度也是ADC非常重要的指标,ADC(或DAC,其实ADC也是由DAC组成的)线性度指标有两个: INL:翻译过来叫“ ...

  7. HAL驱动库学习-ADC

    如何使用ADC驱动库 1  实现如下两个函数     a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断     b:HAL_ ...

  8. STM32 ADC 测电压

    1. STM32F103 ADC 本例使用STM32F103芯片的PA1引脚测试模拟输入的电压值. 查看文档<STM32F103X.pdf>第31页,引脚定义图: 得知PA1使用ADC1的 ...

  9. ADC测试matlab代码

    前面有做过ADC性能测试,测试方式是先使用ADC采集一个单频信号,然后利用matlab进行性能分析. 下面把matlab分析的代码记录下来: %The following program code p ...

  10. NRF51822之ADC(1)

    在开始讲解的前,我们不生产水,我们只是大自然的搬运工.开始搬手册(nRF51 Series Reference Manual Version 3.0)上的资料

随机推荐

  1. RPC实战与核心原理之流量回放

    流量回放:保障业务技术升级的神器 回顾 时钟轮在 RPC 中的应用,核心原理就一个关键字"分而治之",我们可以把它用在任何需要高效处理大量定时任务的场景中,最具有代表性的就是在高并 ...

  2. odoo15接口调用qweb打印,将pdf旋转并下载到本地

    一.将pdf旋转的通用方法 def rotate_pdf(self, pdf, angle): """ rotateClockwise(90) 这里的pdf传:bytes ...

  3. Spring注解之@FeignClient注解使用方法

    声明接口时在代码中通过@Resource注入容器之后即可使用.@FeignClient注解的常用属性如下: value/name:value和name的作用一样,用于指定FeignClient的名称: ...

  4. 打开host有感

    一年前的呼喊,消失在了文化课的彼端,没有回音: 直至今日打开host,才发觉那时悔恨与泪水的珍贵. [此时此刻的光辉,盼君勿忘]也得加上过去式了啊--

  5. 记人生第一次DIY装机之旅

    一.调研 想装一台个人工作站很久了,原因是大学自用的笔记本总是在使用过程中过热关机,导致做一些CPU负载较高的工作时总是中断而无法连贯进行.考虑到目前手头还有一个Surface 3在使用,再买一个笔记 ...

  6. AI接口实现:简单实现Viper配置管理

    简介 前面实现的一个简易suno-api.是使用cookie来获取suno-token发起请求的.当时并没有通过配置的方式来获取cookie,而是直接在代码中写死了cookie的值,这种做法并不好,所 ...

  7. Tauri2.0-DeepSeek电脑端Ai对话|tauri2+vite6+deepseek流式ai聊天系统

    重磅新作tauri2.0+vue3.5+deepseek+arco桌面客户端ai流式输出聊天对话系统. tauri2-vue3-deepseek:桌面端ai聊天对话,基于Tauri2.x+Vite6集 ...

  8. Solon AI 五步构建 RAG 服务:2025 最新 AI + 向量数据库实战

    此文参考自:https://www.toutiao.com/article/7506140643970826779/ 引言:RAG 会成为 2025 年 AI 落地核心? 在2025年,检索增强生成( ...

  9. K8s v1.31 新特性:ImageVolume,允许将镜像作为 Volume 进行挂载

    本文主要分享一个 K8s 1.31 增加的一个新 Feature:ImageVolume.允许直接将 OCI 镜像作为 Volume 进行挂载,加速 artifact 分发. 1.背景 Kuberne ...

  10. 【前端AI实践】简说AI大模型:什么时代了你还不会这些AI大模型的基本概念和使用吗

    如果你是前端开发者,可能已经用过像 ChatGPT.GitHub Copilot 这样的 AI 工具.它们背后都有一个核心能力在支撑:AI 大模型. 那这个"大模型"到底是个啥?它 ...