首页 > 其他分享 >08. 点亮LED

08. 点亮LED

时间:2023-07-29 20:12:34浏览次数:53  
标签:HAL PIN 点亮 08 LED GPIOC GPIO 500

一、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毫秒
  }
}

标签:HAL,PIN,点亮,08,LED,GPIOC,GPIO,500
From: https://www.cnblogs.com/kurome/p/17590384.html

相关文章

  • ABC308
    T1:NewScheme模拟代码实现defsolve():s=list(map(int,input().split()))foriinrange(8):ifs[i]%25!=0:returnFalseifs[i]<100ors[i]>675:returnFalseforiinrange(7):ifs[i]......
  • AI绘画StableDiffusion实操教程:可爱头像奶茶小女孩(附高清图片)
    本教程收集于:AIGC从入门到精通教程汇总今天继续分享AI绘画实操教程,如何用lora包生成超可爱头像奶茶小女孩放大高清图已放到教程包内,需要的可以自取。欢迎来到我们这篇特别的文章——《AI绘画StableDiffusion实操教程:可爱头像奶茶小女孩》。在这篇文章中,我们将一步步教你如何利......
  • Nexpose v6.6.208 for Linux & Windows - 漏洞扫描
    Nexposev6.6.208forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseJul27,2023请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • apue.3e遇到的编译问题(recipe for target 'badexit2' failed)以及ls1.c案例测试
    APUE(慢慢啃这本书)编译问题,网上获得的前辈方法,本地测试可行,仅作记录。1.系统环境2.下载解压tar-zxvf*.tar.gzcd./apue.3emake报错:collect2:error:ldreturned1exitstatusMakefile:31:recipefortarget'badexit2'failedmake[1]:***[badexit2]Error1m......
  • ACM-knowledge <bitset>
    关于bitset,详见参考;#include<iostream>#include<bitset>usingnamespacestd;usingLL=longlong;intmain(){bitset<10>b1;cin>>b1;//1101;可直接读入01串;cout<<b1[0]<<endl;......
  • STM32使用硬件IIC读取SHTC3温湿度传感器 显示在OLED屏上
    STM32使用硬件I2C读取SHTC3温湿度传感器的数据并显示在0.96寸OLED屏上。我用的是STM32F103C8T6,程序用的是ST标准库写的。实现效果图I2C协议简介I2C通讯协议(Inter-IntegratedCircuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外......
  • MUR2080CT- ASEMI二极管的特性和应用
    编辑-Z本文将详细介绍MUR2080CT二极管的特性和应用。首先,将介绍MUR2080CT二极管的基本结构和工作原理。然后,将探讨MUR2080CT二极管的特性,包括正向电压降、反向漏电流和反向恢复时间等。接下来,将介绍MUR2080CT二极管在电源、开关电路和逆变器等领域的应用。最后,将总结MUR2080CT二......
  • ASEMI快恢复二极管MUR2080CTR封装, MUR2080CTR图片
    编辑-ZMUR2080CTR参数描述:型号:MUR2080CTR最大峰值反向电压(VRRM):800V最大RMS电压(VRMS):430V最大直流阻断电压VR(DC):800V平均整流正向电流(IF):20A非重复峰值浪涌电流(IFSM):150A工作接点温度和储存温度(TJ,Tstg):-55to+150℃最大热阻(RθJC):3℃/W正向电压(VF):2V最大瞬......
  • SQL2008 不用for xml 实现拼接字符串
    因为forxml有些特殊符号 不能作为分割符号,所以采用这种方式。如果是SQL2012的话 有自带的函数了--测试数据IFOBJECT_ID('tempdb..#tmp_Orgdata')ISNOTNULLDROPTABLE#tmp_OrgdataGO--GID分组IDSTRCOL字符串SELECTGID,StrColINTO#tmp_Orgdat......
  • ORA-00845:系统不支持MEMORY_TARGET
    错误信息【汉】ORA-00845:系统不支持MEMORY_TARGET【英】ORA-00845:MEMORY_TARGETnotsupportedonthissystem例在CentOS7操作系统上启动数据库时报错。版本Oracle【11.2.0.3.0】、【11.2.0.1.0】、【11.2.0.4.0】原因原因有两种可能,一是因为操作系统不支持参数【MEMORY_TARGET......