资讯详情

如何编程控制点亮一个LED灯?

我是一个只能点灯的菜鸟;


相关文章

1 前言

本文基于STSTM32F767ZI NUCLEO144结合开发板CubeIDE的插件CubeMX配置生成代码,点亮板载LED,点亮可以说是单片机开发中的点亮hello world,非常简单;

2 理论分析

2.1 LED 原理

发光二极管简称LED,生活几乎无处不在,由含镓组成(Ga)、砷(As)、磷(P)、氮(N)等化合物制成。。作为电路和仪器中的指示灯,或形成文本或数字显示。砷化镓二极管为红光,磷化镓二极管为绿光,碳化硅二极管为黄光,氮化镓二极管为蓝光。由于化学性质而分为^1。

LED电路设计中的符号如下图所示,正向导通,反向截止;

所以这里有几个简单的介绍:
  • ① 正极通常接电;

  • ② 通常接地;

  • 确保流过电流在5mA-10mA

2.2 板载资料

上一篇文章写道如何快速构建CubeIDE此外,我还整理了官方信息,文档在这里,密码: 1rjv,打开en.DM00244518.pdf,NUCLEO144如下图所示;

这里有三个用户 LED,下面就结合CubeIDE中的CubeMX插件配置生成相应的代码;

2.3 电路分析

解压文件en.nucleo_144pins_sch.zip,打开原理图pdf文件MB1137.pdf;可以看到,Blue LEDRed LED,如下图所示;

Green LED如下所示;
插入图片描述
根据虚短和虚断, ;感觉像电压跟随器, , 电路分析水平有点抠脚;
Pin LED Mode
PB14 RED PP
PB7 BLUE PP
PB0 GREEN PP

PP推挽输出;

3 CubeMX配置

打开CubeIDE

3.1 SYS 配置

板载一个,下面将使用下面的下载和调试程序SWD模式,所以这里的Debug选择Serial Wire,如下图所示;

3.2 GPIO 选择

:在试图在芯片上找到所需的芯片Pin,本文使用了 PB14PB7PB0,图中找到PB7,并点击鼠标弹出菜单;

:选择GPIO的模式为GPIO_Output;如下图所示;

3.3 GPIO 配置

选择了三个Pin,分别为PB14PB7PB0,所有配置为:

  • GPIO output level:初始化完成后,输出电平状态较高;

  • GPIO mode:输出模式为推拉输出;

  • 上下拉模式:此处暂不配置,无影响;

完成后如下图所示;

4 程序生成

配置代码最终生成如下;

staticvoidMX_GPIO_Init(void) { GPIO_InitTypeDefGPIO_InitStruct={0};  /*GPIOPortsClockEnable*/ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE();  /*ConfigureGPIOpinOutputLevel*/ HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0|GPIO_PIN_14|GPIO_PIN_7,GPIO_PIN_SET);  /*ConfigureGPIOpins:PB0PB14PB7*/ GPIO_InitStruct.Pin=GPIO_PIN_0|GPIO_PIN_14|GPIO_PIN_7; GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull=GPIO_NOPULL; GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);  } 

5 程序下载

CN4CN6跳帽设置在下图的状态,使用板载STLINK给板载的MCU下载固件;

进入调试模式,开始运行,终于点亮了。我跳起舞来,表情很激动(夸张的演技),如下图所示;

6 总结

千里之行,从点灯开始,后面还有很长的路要走,暂时先做个记录。

微信官方账号:小麦叔叔

CSDN:小麦大叔

长按下图二维码关注,独自前进,走得快;结伴而行,走得远;在这里除了肝出来的文章,还有一步一个脚印学习的点点滴滴;

关注和回答???开始成长之旅 ??。


标签: 绿光1206led二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台