08. 点亮LED

发布时间 2023-07-29 19:58:37作者: 夏冰翎

一、LED简介

  发光二极管,简称为 LED,是一种常用的发光器件,它由含 镓(Ga)、砷(As)、磷(P)、氮(N)等的 化合物 制成。通过 电子空穴 复合释放能量发光,它在照明领域应用广泛。

  发光二极管与普通二极管一样是由一个 PN结 组成,也具有 单向导电性。当给发光二极管加上 正向电压 后,从 P区 注入到 N区 的 空穴 和由 N区 注入到 P区 的 电子,在 PN结 附近数微米内分别与 N区 的 电子 和 P区 的 空穴 复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的 反向击穿电压 大于5伏。它的 正向伏安特性曲线 很陡,使用时必须 串联限流电阻 以控制通过二极管的电流。

二、原理图

img

img

三、程序设计

  LED 初始化函数:

void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
  
    __HAL_RCC_GPIOC_CLK_ENABLE();                           // 使能GPIOC的时钟

    GPIO_InitStruct.Pin = GPIO_PIN_0;                       // 选择GPIO的引脚
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;             // 设置为推挽输出模式
    GPIO_InitStruct.Pull = GPIO_NOPULL;                     // 不使用上下拉
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;           // 设置GPIO的输出速度为高速
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);                 // GPIO初始化函数

    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);     // 默认输出高电平,LED熄灭
}

  点亮 LED:

HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET);	// 输出低电平,点亮LED

  熄灭 LED:

HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);     // 输出高电平,熄灭LED

  LED 闪烁:

HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);			// GPIO状态翻转,LED 闪烁
HAL_Delay(500);						// 延迟500毫秒

  main() 函数:

int main(void)
{
  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  LED_Init();
  
  while (1)
  {
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET);	                    	// 输出低电平,点亮LED
    HAL_Delay(500);						                    	// 延迟500毫秒
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);                         	// 输出高电平,熄灭LED
    HAL_Delay(500);						                        // 延迟500毫秒
  }
}