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

    文章

    1592

    浏览量

    107822
  • 发光二极管
    +关注

    关注

    13

    文章

    1193

    浏览量

    66192
  • LED驱动
    +关注

    关注

    72

    文章

    988

    浏览量

    137947
  • GPIO
    +关注

    关注

    16

    文章

    1196

    浏览量

    51896
  • 电压电流表
    +关注

    关注

    0

    文章

    24

    浏览量

    2073
  • CW32
    +关注

    关注

    1

    文章

    183

    浏览量

    575

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    CW32数字电压电流表软件教程(五):ADC采样及显示

    模拟数字转换器即A/D转换器,或简称ADC,通常是指个将模拟信号转变为数字信号的电子元件。通
    的头像 发表于 05-21 10:34 1080次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件教程</b>(五):ADC采样及显示

    CW32数字电压电流表软件教程-实验二:按键检测

    3.1.独立按键基础知识 3.1.1.独立按键结构组成 独立按键实际上是个非自锁的轻触开关,有左右两个触点,当按下时左右两个触点闭合,当松开时左右两个触点断开。 3.1.2.独立按键控制原理 想要
    的头像 发表于 05-31 15:16 818次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件教程</b>-实验二:按键检测

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

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

    基于STM32的USB电压电流表

    电子发烧友网站提供《基于STM32的USB电压电流表.zip》资料免费下载
    发表于 08-10 14:47 40次下载
    基于STM32的USB<b class='flag-5'>电压电流表</b>

    精密DIY电压电流表

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

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

    2.1.LED基础知识 2.1.1.LED灯结构组成 LED灯,也称发光二极管,是种能够将电能转化为可见光的固态的半导体器件,它可以直接
    的头像 发表于 05-31 15:09 329次阅读
    <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'>LED</b>原理与<b class='flag-5'>驱动</b>

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

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

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

    6.1. ADC基础知识 6.1.1. 什么是ADC 模拟数字转换器即A/D转换器,或简称ADC,通常是指个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将
    的头像 发表于 05-31 15:28 502次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件教程</b>-实验五:ADC采样及显示

    CW32数字电压电流表软件教程-实验六:串口蓝牙发送

    7.1.串口基础知识 7.1.1.串口介绍 串行接口简称串口,也称串行通信接口或串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数
    的头像 发表于 05-31 15:45 292次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件教程</b>-实验六:串口蓝牙发送

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

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

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

    基于[CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)],可以对电压电流进行同时采集显示。
    的头像 发表于 05-31 15:50 615次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>进阶教程-1.<b class='flag-5'>电压电流</b>同时显示

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

    在实验运行7.1章节例程时 [CW32数字电压电流表软件进阶教程-1.电压电流同时显示] ,会发现实时显示更新的数据是当前采集值,并未做数据
    的头像 发表于 05-31 15:57 438次阅读

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

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

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

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