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

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

3天内不再提示

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

武汉芯源半导体 来源:CW32生态社区 作者:CW32生态社区 2024-05-06 15:33 次阅读

2.1.LED灯基础知识

2.1.1.LED灯结构组成

LED灯,也称发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的内部是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,整个晶片环-氧树脂封装起来。常见的LED灯如图2-1所示。

a2fba748-0b7a-11ef-a297-92fbcf53809c.jpg

图2-1 常见LED灯

2.1.2.LED灯发光原理

半导体晶片由两部分组成,一部分是P型半导体,另一端是N型半导体。这两种半导体连接起来的时候,它们之间就形成了一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。

2.1.3.LED灯驱动原理

LED 驱动指的是通过稳定的电源为 LED 提供合适的电流和电压,使其正常工作点亮。LED 驱动方式主要有恒流和恒压两种。限定电流的恒流驱动是最常见的方式,因为 LED 灯对电流敏感,电流大于其额定值可能导致损坏。恒流驱动保证了稳定的电流,从而确保了 LED 安全。

LED 灯的驱动比较简单,只需要给将对应的正负极接到单片机的正负极即可驱动。LED的接法也分有两种,灌入电流和输出电流。

a30f926c-0b7a-11ef-a297-92fbcf53809c.png

图2-2 LED接法示例

灌入电流指的是LED的供电电流是由外部提供电流,将电流灌入我们的MCU;风险是当外部电源出现变化时,会导致MCU的引脚烧坏。

输出电流指的是由MCU提供电压电流,将电流输出给LED;如果使用 MCU的GPIO 直接驱动 LED,则驱动能力较弱,可能无法提供足够的电流驱动 LED。

需要注意的 是 LED 灯的颜色不同,对应的电压也不同。电流不可过大,通常需要接入220欧姆到10K欧姆左右的限流电阻,限流电阻的阻值越大,LED的亮度越暗。

2.2.LED灯原理图

CW32F003小蓝板关于LED灯的原理图如图2-3所示

a32927c2-0b7a-11ef-a297-92fbcf53809c.png

a3413fc4-0b7a-11ef-a297-92fbcf53809c.png

图 2-3 小蓝板LED灯原理图

2.3.LED灯驱动流程(库函数)

通过上面的原理图可以了解到,LED2中负极接到了电源地,LED2的正极经限流电阻R3连接到电源正。当核心板上电时,使LED2导通,这时便有电流流过发光二极管LED2,使LED2发光指示电源接入;

LED1的正极经限流电阻R5接到电源正极,LED1的负极连接到单片机的GPIO口上,通过LED灯的驱动原理,只需要将相应GPIO(PC0)配置为低电平即可点亮LED1。CW32F003小蓝板的LED部分实物图如图2-4所示

a35eaba4-0b7a-11ef-a297-92fbcf53809c.png

图 2-4 小蓝板LED实物图

2.3.1.配置流程

一般我们使用GPIO的端口,都需要有以下几个步骤。

开启GPIO的端口时钟

配置GPIO的模式

配置GPIO的输出

从开发板原理图了解到LED2接的是单片机的PC0。我们要使能LED就需要配置GPIOC端口。下面我们就以LED1接的PC0进行介绍。

2.3.1.1.开启CW32F003系统内部时钟

CW32的系统内部时钟默认并不是我们想要的运行频率,在使用CW32之前我们需要先配置内部时钟树。查找CW32F003的用户手册可以找到系统内部时钟树如下图:

a38421fe-0b7a-11ef-a297-92fbcf53809c.png

图2-5 CW32F003内部时钟树

在CW32的库函数中找到cw32f003_rcc.h,头文件中有时钟树相关配置的函数,如下图:

a3930e62-0b7a-11ef-a297-92fbcf53809c.png

图2-6 时钟树相关配置函数

void RCC_Configuration(void)
{
  FLASH_SetLatency(FLASH_Latency_2); // 设置主频为48MHZ需要注意,Flah的访问周期需要更改为FLASH_Latency_2。
  RCC_HSI_Enable(RCC_HSIOSC_DIV1);   // 设置频率为48M
  RCC_SYSCLKSRC_Config(RCC_SYSCLKSRC_HSI);  //选择SYSCLK时钟源  48MHz
  RCC_HCLKPRS_Config(RCC_HCLK_DIV1);  //配置SYSTICK到HCLK分频系数  48MHz
  RCC_PCLKPRS_Config(RCC_PCLK_DIV8); //配置HCLK 到 PCLK的分频系数  6MHz
}

2.3.1.2.开启GPIO的端口时钟

CW32的外时钟默认是全部关闭,使用GPIO外设之前我们需要先开启对应的时钟。

在CW32提供的库函数中找到cw32f003_rcc.h,这个头文件包含了所有时钟相关的函数接口。外设时钟的接口如下图所示:

a3ab8f6e-0b7a-11ef-a297-92fbcf53809c.png

图2-7 GPIO配置相关函数

LED1的控制IO是PC0,因此需要打开GPIOC对应的时钟,代码如下:

__RCC_GPIOC_CLK_ENABLE();//打开GPIOC的时钟
2.3.1.3.配置GPIO初始化

GPIO初始化包含了模式,中断使能,io引脚位号。CW32的GPIO初始化是先把所有初始化项写在一个结构体里面,然后把结构体传入带初始化函数里,完成初始化功能。

与GPIO相关的函数接口都在cw32f003_gpio.h头文件里面,我们先看GPIO模式有哪些,如下图所示:

a3c85180-0b7a-11ef-a297-92fbcf53809c.png

图2-8 GPIO模式 GPIO模式包含了模拟输入,数字输入,数字上拉输入,数字下拉输入,数字推挽输出,数字开漏输出模式。

根据发光二极管控制原理,PC0接在LED的反向端,因此PC0为低电平时,LED点亮。我们需要PC0输出高低电平,模式需要选择数字输出模式,由于开漏模式需要外部有上拉或者下拉电阻才可输出高低电平,所以我们选择推挽模式。代码如下:

 GPIO_Init_Struct.Mode = GPIO_MODE_OUTPUT_PP;
中断使能包含了:无中断,上升沿,下降沿,低电平,高电平中断使能。

a3dd5b34-0b7a-11ef-a297-92fbcf53809c.png

图2-9 GPIO中断 因为我们需要的是GPIO输出,因此不需要中断使能,代码如下:

 GPIO_Init_Struct.IT = GPIO_IT_NONE;
GPIO位号如下图所示:

a3f61700-0b7a-11ef-a297-92fbcf53809c.png

图2-10 GPIO位脚 LED的控制端为PC0,最后的这个0就是位号,配置代码如下:

 GPIO_Init_Struct.Pins = GPIO_PIN_0;
引脚输出还需要配置GPIO的输出速度,有高低速两种速度设置,我们设置高速:
GPIO_Init_Struct.Speed = GPIO_SPEED_HIGH;
以上配置就完成了GPIO的结构体初始化,然后我们需要调用初始化函数,在cw32f003_rcc.h里找到void GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);包含了两个参数,第一个参数是GPIO的基地址,第二个参数是初始化配置结构体。调用代码如下:
GPIO_Init(CW_GPIOC, &GPIO_Init_Struct);
结合以上配置,完整代码如下:
 GPIO_InitTypeDef GPIO_Init_Struct;
  __RCC_GPIOC_CLK_ENABLE();
  GPIO_Init_Struct.IT   = GPIO_IT_NONE;
  GPIO_Init_Struct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_Init_Struct.Pins = GPIO_PIN_0;
  GPIO_Init(CW_GPIOC, &GPIO_Init_Struct);
2.3.1.4.配置LED输出

配置好GPIO之后,就可以进行点灯了。就是让PC0输出高低电平。 在cw32f003_gpio.h头文件中可以找到函数
GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pins, GPIO_PinState PinState);

传参有三个,第一个是第一个参数是GPIO的基地址,第二个参数是引脚位号,第三个参数是输出状态。
GPIO_WritePin(CW_GPIOC,GPIO_PIN_0,GPIO_Pin_SET);//PC0输出高电平
GPIO_WritePin(CW_GPIOC,GPIO_PIN_0,GPIO_Pin_RESET);//PC0输出低电平
我们要点亮LED1根据上文的电路图可知要将PC0置低。

2.3.1.5.程序下载接线

我们使用DAP-Link作为程序下载媒介,DAP-Link的接线图如下。其中蓝色(3.3V)、绿色(GND)、 紫色(数据线SWD)、灰色(时钟信号线SCK),与图2-12一一对应。

a411abdc-0b7a-11ef-a297-92fbcf53809c.png

图2-11 DAP-Link接线图

a438cd70-0b7a-11ef-a297-92fbcf53809c.png

图2-12 CW32F003程序下载接线

2.3.2.实验效果

最终的实验效果如下图所示:

a45d1b1c-0b7a-11ef-a297-92fbcf53809c.png

图2-13 LED点亮实验现象



审核编辑:刘清

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

    关注

    22

    文章

    1561

    浏览量

    107076
  • 发光二极管
    +关注

    关注

    13

    文章

    1144

    浏览量

    65730
  • LED驱动
    +关注

    关注

    72

    文章

    947

    浏览量

    137504
  • GPIO
    +关注

    关注

    16

    文章

    1141

    浏览量

    50678
  • 电压电流表
    +关注

    关注

    0

    文章

    13

    浏览量

    2026
  • CW32
    +关注

    关注

    1

    文章

    126

    浏览量

    288

原文标题:CW32数字电压电流表软件教程-实验一:LED原理与驱动

文章出处:【微信号:武汉芯源半导体,微信公众号:武汉芯源半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    电压跟随器的功能简化外围电路 2、使用了和市面电压电流表的同款接口(XH2.54+CH3.96),方便通用 3、最大40V的表头供电电压,覆盖大部分常用电压范围 4、板载低成本蓝牙通
    的头像 发表于 04-25 15:20 1243次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品硬件设计要点

    我是新手照别人的电路搞了个电压电流表可是没有程序

    我是新手照别人的电路搞了个电压电流表可是没有程序,我自己也不会 ,发帖求助下 论坛的高手帮忙。用STC15F204EA驱动1602,测试电压50v
    发表于 10-16 17:48

    求助:请教各位老师数字电压电流表在正负输出电源里...

    ,这样更直观,可是组装时才发现这2块不知如何接,咨询卖家,他说在正负输出电源里没法接。我想在正输出接1快电压电流表,在负输出接1快电压表在这里请各位帮我出出注意,谢谢各位了。`
    发表于 11-08 23:24

    电流表电压表的选择和使用

    。使用电流表时要将电流表串联接人被测电路。在测量较高电压电路的电流时,电流表应串联接在被测电路中的低电位端,如图1(a)所示。如果错接成并联
    发表于 02-08 09:23

    求个最简单的labview电压表电流表,能实时显示电压电流就行

    求个最简单的labview电压表电流表,能测出电压电流和显示就行我在做个系统设计,里面需要用到电压
    发表于 03-16 09:52

    数字电流表的设计

    、计算技术、自动化技术的成果与精密电测量技术密切的结合在起,成为仪器、仪表领域中独立而完整的个分支,数字电流表标志着电子仪器领域的场革
    发表于 08-06 06:22

    怎样去设计个基于单片机的数字电流表

    串联,其显示的是电流数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。
    发表于 12-13 06:51

    INA219电压电流表的资料分享

    描述电压电流表INA219这真的是个很酷的小设备,它不仅可以让你测量电流,还可以测量电压。通过点乘法,您甚至可以测量功率。在
    发表于 08-18 07:16

    CW32计数智化助力,现身青岛环球计大会

    4月25-28日,2023年中国国际计行业年度大会顺利举办。在这次展会中,武汉芯源半导体携CW32家族产品,为计行业参观者展示了燃气、水表、电表、可燃气体报警器等
    发表于 05-05 14:24

    求:推荐微型宽温数字电压电流表

    各位大神: 因项目需求,需采购宽温微型数字电压电流表头。工作温度范围是:-40°~60°,最低也要在-25°~50°。 不知群里的大神有推荐么?
    发表于 08-27 15:22

    CW Programmer CW32系列芯片烧录工具配套软件

    CW Programmer CW32系列芯片的烧录工具配套软件
    发表于 09-15 07:44

    智能电压电流表的工作原理及功能

    电压电流表,主要用于测量直流电压电流信号、传感器输出的电压电流信号等等。近年来,随着智能电子技术的发展,
    的头像 发表于 05-06 09:38 2738次阅读

    精密DIY电压电流表

    电子发烧友网站提供《精密DIY电压电流表.zip》资料免费下载
    发表于 10-27 14:19 19次下载
    精密DIY<b class='flag-5'>电压电流表</b>

    CW32通用输入输出端口详解

    CW32通用输入输出端口详解
    的头像 发表于 10-30 17:33 622次阅读
    <b class='flag-5'>CW32</b>通用输入输出端口<b class='flag-5'>详解</b>

    基于CW32的物联网应用

    CW32】基于CW32的物联网应用
    的头像 发表于 11-02 15:55 358次阅读
    基于<b class='flag-5'>CW32</b>的物联网应用