最近开发一个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. MongoDB中distinct的用法

    作用 获取集合中指定字段的不重复值,并以数组的形式返回 语法 db.collection_name.distinct(field,query,options) field:指定返回的字段(string ...

  2. 不同版本AutoCAD的ProgID

    AutoCAD产品名 ProgID AutoCAD 2004 AutoCAD.Application.16 AutoCAD 2005 AutoCAD.Application.16.1 AutoCAD ...

  3. c语言笔记(翁凯男神

    哼,要记得好好学习去泡帅哥吖 一.快速入门 %p 输出地址 #include <stdio.h> void f(int *p); int main(){ int i = 1; printf ...

  4. Spring Boot中如何读取resources目录下的文件

    在Java编码过程中,我们常常希望读取项目内的配置文件,按照Maven的习惯,这些文件一般放在项目的src/main/resources下.因此,我们把合同的PDF模板存放于resources/tem ...

  5. ChatGPT Codex试用心得,码农的可靠助手or失业号角?

    今天在chatgpt网页上收到了chatgpt的灰度推送,可以尝试gpt的codex代码助手了,迫不及待的尝试了一番,有一些坑和注意事项在本文进行了汇总,方便其他园子里的有plus的小伙伴尝鲜,下面开 ...

  6. C++数据结构和算法代码模板总结——算法部分

    数据结构和算法学*了将*两周,及时总结和整理一下相关的知识点温故而知新.(一)C++双指针,有个经典的问题:荷兰国旗问题.[leetcode]75.颜色分类 public void sortColor ...

  7. linux搭建natapp内网穿透服务器

    参考教程:window版本 https://www.jianshu.com/p/8897106c8d3dlinux版本 https://natapp.cn/article/natapp_newbie相 ...

  8. Spring Boot 自动配置原理深度解析

    在 Spring 生态系统中,Spring Boot 自动配置是实现 "零配置" 开发的核心特性,通过约定大于配置的理念,自动为应用注入所需的基础设施配置.本文从核心注解.底层机制 ...

  9. 开源DeepWiki 企业老项目救星:自动生成文档+AI问答,告别遗留代码维护噩梦

    企业痛点一击即中 你是否还在为这些问题头疼: 核心业务系统缺乏文档,新人上手困难 老员工离职带走关键代码知识 系统升级维护成本居高不下 业务逻辑复杂,代码理解困难 OpenDeepWiki最新版本专为 ...

  10. Uniapp简易使用canvas绘制分享海报

    使用UniApp Canvas实现分享海报 一.分享海报 现在使用 Uniapp 中的 canvas 简单实现下商品的分享海报,附上二维码(这个可以附上各种信息例如分享绑定下单等关系),开箱即用. 动 ...