首页 > 其他分享 >STC32G12K128-ADC

STC32G12K128-ADC

时间:2022-10-17 16:44:54浏览次数:71  
标签:AD 0x7c 0x03 STC32G12K128 void ADC

最近开发一个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);
}

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

标签:AD,0x7c,0x03,STC32G12K128,void,ADC
From: https://www.cnblogs.com/taotaonihao/p/16799726.html

相关文章

  • 怎样理解ADC的噪声、有效分辨率
     一个24位的ADC,真正能使用的位数能达到24位吗?答案是否定的,由于器件本身噪声的存在,且噪声范围已经超过了ADC的最小分辨率。所以,基本上24位ADC都不能做到24位无跳动。 那......
  • 外设驱动库开发笔记47:ADS111x系列ADC驱动
      关于ADC我们已经讨论过不少了,但在不同的应用需求下,我们会选择不同的原件。在这里我们将讨论ADS111x系列ADC驱动的设计与实现。1、功能概述  ADS1113、ADS1114和......
  • 基于STM32H7的ADS1256驱动案例,8通道,24bit ADC,带可编程增益(2021-09-20)
    例程下载:​​V7-068_ADS1256(8通道带PGA的24位ADC).7z​​(3.12MB)测试效果:测试LM285-2.5V稳压效果,抖动40uV:  测试干电池效果,抖动10uV左右,注意,这个级别的抖动容易受环境温......
  • #打卡不停更#在开鸿智谷NiobeU4移植lvgl并实现ADC按键状态显示
    本文主要分享在开鸿智谷NiobeU4开发板移植lvgl经验,并实现按键按下sw4显示SW4Pressed松开显示SW4Release,整理踩坑经验分享如下。1.移植准备开鸿智谷NiobeU4开发板Openhar......
  • java类加载器 defineClass和loadClass的区别
    在阅读《自己动手写java虚拟机》时,通过观察P133~P135的代码classLoader会将加载过的class保存起来(包括defineclass的类),而只有在要加载一个类时 没有从已加载的类找到......
  • JadConfig 注解驱动的java 配置管理包
    JadConfig是graylog开源的一个基于注解驱动的java配置管理包,graylogserver对于配置的管理就是使用了此包JadConfig使用比较简单,但是功能还是很强大的,配置包含了校验......
  • JadConfig classpathRepository 扩展
    JadConfig默认包含了基于内存,properties文件,系统属性,以及环境变量的Repository,但是对于classpath的文件处理不是很方便我们可以自己在扩展接口实现定义 publicinterf......
  • CUBE MX ADC多通道DMA传输只有数组第一位获得数据问题
    出现问题现象如下,ADC取值数组只有第一位得到了数据  经多次反复检查,发现CUBE配置是没问题的,于是检查了一下生成的代码,发现DMA初始化函数在自动生成时被放在了ADC初始......
  • JadConfig classpathRepository 扩展
    JadConfig默认包含了基于内存,properties文件,系统属性,以及环境变量的Repository,但是对于classpath的文件处理不是很方便我们可以自己在扩展接口实现定义 ......
  • JadConfig 注解驱动的java 配置管理包
    JadConfig是graylog开源的一个基于注解驱动的java配置管理包,graylogserver对于配置的管理就是使用了此包JadConfig使用比较简单,但是功能还是很强大的,配置包含了校......