0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32数字电压电流表软件进阶教程-1.电压电流同时显示

CW32生态社区 来源:CW32生态社区 作者:CW32生态社区 2024-05-31 15:50 次阅读

基于[CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)],可以对电压电流进行同时采集显示。

电流检测电路如下:

本项目设计的采样电流为3A,选择的采样电阻为100mΩ。AIN接入CW32芯片内部的AIN11通道,PB05端口上。

电流计算方法为(A为单位):AIN电压/0.1欧。

AIN电压计算方法与电压通道分压输入计算相同,V为单位时:

VIN=ADC转换值/4096*1.5V.

核心代码参考如下:

ADC初始化如下,完成两路AD转换通道初始化,使用序列扫描模式:

void ADC_init(void)
{
    ADC_InitTypeDef     ADC_InitStructure;         //ADC配置结构体
    ADC_SerialChTypeDef ADC_SerialChStructure;     //ADC序列通道结构体
    GPIO_InitTypeDef    GPIO_Init_Struct;

    __RCC_GPIOB_CLK_ENABLE(); //打开ADC对应引脚时钟   
    __RCC_ADC_CLK_ENABLE();   // 打开ADC时钟

    GPIO_Init_Struct.IT   = GPIO_IT_NONE;
    GPIO_Init_Struct.Mode = GPIO_MODE_ANALOG;//将GPIO的模式配置成模拟功能
    GPIO_Init_Struct.Pins = GPIO_PIN_1;      // PB01是电压采集引脚
    GPIO_Init(CW_GPIOB, &GPIO_Init_Struct);
    PB01_ANALOG_ENABLE();                    //使能模拟引脚
  PB05_ANALOG_ENABLE(); 

    ADC_StructInit(&ADC_InitStructure);      // ADC默认值初始化
    ADC_InitStructure.ADC_ClkDiv     = ADC_Clk_Div4; //ADC工作时钟配置 PCLK/4 = 6/4 = 1.5Mhz

/*信号电压较低时,可以降低参考电压来提高分辨率。改变参考电压后,同样二进制表示的电压值就会不一样,
  最大的二进制(全1)表示的就是你的参考电压,在计算实际电压时,就需要将参考电压考虑进去。*/
    ADC_InitStructure.ADC_VrefSel    = ADC_Vref_BGR1p5;     //参考电压设置为1.5V
    ADC_InitStructure.ADC_SampleTime = ADC_SampTime10Clk;   //由于电压信号为慢速信号,ADC采样时间为十个ADC采样周期以确保准确

     ADC_SerialChStructure.ADC_Sqr0Chmux  = ADC_SqrCh9;      //配置ADC序列,PB01是ADC的第9通道
    ADC_SerialChStructure.ADC_Sqr1Chmux  = ADC_SqrCh11;
    ADC_SerialChStructure.ADC_SqrEns     = ADC_SqrEns01;
    ADC_SerialChStructure.ADC_InitStruct = ADC_InitStructure; //ADC初始化

    ADC_SerialChContinuousModeCfg(&ADC_SerialChStructure);   //ADC序列连续转换模式配置
    ADC_ClearITPendingAll();           //清除ADC所有中断状态
    ADC_Enable();                      // ADC使能
    ADC_SoftwareStartConvCmd(ENABLE);  //ADC转换软件启动命令

数据采集处理代码如下:

void Volt_Cal(void)
{ 
  ADC_GetSqr0Result(&sampledata);  ///当前采集值显示出来  
  V_Buffer = (sampledata * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
  // 四舍五入
    if(V_Buffer % 10 >= 5)
    {
        V_Buffer = V_Buffer / 10 + 1;
    }
    else
    {
        V_Buffer = V_Buffer / 10;
    }


   ADC_GetSqr1Result(&I_Buffer);  ///当前采集值显示出来
    I_Buffer=I_Buffer * ADC_REF_VALUE > > 12;
     /**
        mv =I_Buffer * ADC_REF_VALUE > > 12,
        R = 100mr,
        10ma = mv/R/10=mv/0.1/10 = mv
     */  
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电压电流表
    +关注

    关注

    0

    文章

    25

    浏览量

    2073
  • CW32
    +关注

    关注

    1

    文章

    196

    浏览量

    598
收藏 人收藏

    评论

    相关推荐

    模电怎么判断电压电流反馈器的好坏

    对于保证电路的稳定性和可靠性至关重要。 1. 电压电流反馈器的基本原理 电压电流反馈器是一种具有电压反馈和电流反馈功能的放大器。其基本原理是
    的头像 发表于 08-22 11:12 374次阅读

    电流表电压表无示数的原因

    引言 电流表电压表是电气工程中不可或缺的测量工具。它们能够测量电路中的电流电压,为电路设计、调试和维护提供重要数据。然而,在实际使用过程中,有时会出现
    的头像 发表于 07-13 10:50 4528次阅读

    基于CW32F003E4P7的数字电压电流表产品方案

    产品实物: 一、产品概述 数字电压电流表,又称为数显电流电压表,是以数字形式显示,能够同时检测
    的头像 发表于 06-25 11:55 880次阅读
    基于<b class='flag-5'>CW</b>32F003E4P7的<b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>产品方案

    CW32数字电压电流表软件进阶教程-3.电压电流标定

    标定是通过测量标准器的偏差来补偿仪器系统误差,从而改善仪器或系统准确度、精度的操作。为了提高电压电流表在测量时的测量精度和准确度,需要对电压电流进行标定校准。 常见的标定原理如下:假设一个采样系统
    的头像 发表于 05-31 16:20 676次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b><b class='flag-5'>进阶</b>教程-3.<b class='flag-5'>电压电流</b>标定

    CW32数字电压电流表软件进阶教程-2.电压电流值做均值滤波

    在实验运行7.1章节例程时 [CW32数字电压电流表软件进阶教程-1.
    的头像 发表于 05-31 15:57 464次阅读

    CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)

    有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m为该模板中包含当前像素在内的像素总个数。这本是数字图像处理的一种方法,但也可以用在我们数字电压电流表
    的头像 发表于 05-31 15:47 348次阅读

    CW32数字电压电流表软件教程-实验五:ADC采样及显示

    数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。 6.1.2.
    的头像 发表于 05-31 15:28 523次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程-实验五:ADC采样及<b class='flag-5'>显示</b>

    CW32数字电压电流表软件教程-实验四:数码管动态显示

    5.1.数码管动态显示原理 所谓动态扫描显示即轮流向各位数码管送出段码和位码,利用发光管的余辉和人眼视觉暂留作用,使人眼的感觉好像各位数码管同时都在显示。明确了原理,我们要使
    的头像 发表于 05-31 15:23 477次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程-实验四:数码管动态<b class='flag-5'>显示</b>

    CW32数字电压电流表软件教程(三):数码管显示数字

    数码管的显示原理是由多个发光的二极管共阴极或者共阳极组成的成“8”字形的显示器件。数码管通过不同的组合可用来显示数字0~9、字符A ~ F及小数点“.”。
    的头像 发表于 05-14 14:20 2.3w次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程(三):数码管<b class='flag-5'>显示</b><b class='flag-5'>数字</b>

    CW32数字电压电流表软件教程(一):LED原理与驱动基础知识详解

    LED 驱动指的是通过稳定的电源为 LED 提供合适的电流电压,使其正常工作点亮。LED 驱动方式主要有恒流和恒压两种。
    的头像 发表于 05-06 15:33 1710次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程(一):LED原理与驱动基础知识详解

    CW32数字电压电流表-产品硬件设计要点

    主要功能: 1、对5-99V的电压与0.1-3A的电流进行测量与显示 2、通过蓝牙发送测得的数据 3、作为一款CW32+数码管的迷你开发板
    的头像 发表于 04-25 15:20 1858次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品硬件设计要点

    CW32数字电压电流表-产品制作注意事项

    焊接排针再焊接数码管,且需要像上图一样确保排针底部不要凸出PCB,否则会与数码管发生干涉 2、外壳安装 如果您计划使用淘宝或其他渠道购买的公版外壳,在焊接数码管前请先仔细阅读下方内容 注:建议先焊接数码管,再焊接连接器 上图为两种型号的电压电流
    的头像 发表于 04-24 17:29 393次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品制作注意事项

    CW32数字电压电流表-产品硬件设计流程详解

    对5-99V的电压与0.1-3A的电流进行测量与显示
    的头像 发表于 04-24 14:17 777次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品硬件设计流程详解

    基于单片机的电压电流表设计

    电子发烧友网站提供《基于单片机的电压电流表设计.rar》资料免费下载
    发表于 01-12 09:59 16次下载

    基于单片机的电压电流表设计

    电子发烧友网站提供《基于单片机的电压电流表设计.rar》资料免费下载
    发表于 01-02 09:36 32次下载