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

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


相关文章

1 前言

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

2 理论分析

2.1 LED 原理

发光二极管简称为LED,生活中几乎无处不在,由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。因化学性质又分有机发光二极管OLED无机发光二极管LED^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如下所示;


在这里插入图片描述
根据虚短和虚断, ;感觉像是电压跟随器,那 , 电路分析水平有点抠脚了;
PinLEDMode
PB14REDPP
PB7BLUEPP
PB0GREENPP

PP为推挽输出;

3 CubeMX配置

打开CubeIDE

3.1 SYS 配置

NUCLEO144板载一个ST-LINKV2,下载和调试程序的时候下面会用SWD模式,所以这里SYS的Debug选择Serial Wire,具体如下图所示;


3.2 GPIO 选择

第一步
Pinout view的芯片试图上找到所需要的Pin,本文使用了 PB14PB7PB0,图中找到PB7,并鼠标点击并弹出菜单;

第二步
选择GPIO的模式为GPIO_Output
具体如下图所示;


3.3 GPIO 配置

选择了三个Pin,分别为PB14PB7PB0,全都配置为:

  • GPIO output level:初始化完成之后输出的电平状态为高;

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

  • 上拉和下拉模式:这里暂不配置,没有影响;

完成后如下图所示;


4 程序生成

最终生成了配置代码如下;

static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOB_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_14|GPIO_PIN_7, GPIO_PIN_SET);

  /*Configure GPIO pins : PB0 PB14 PB7 */
  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 程序下载

NUCLEO144CN4CN6的跳帽设置为如下图的状态,这样就使用了板载的STLINK给板载的MCU下载固件;



进入调试模式并开始运行,终于点亮了,我手舞足蹈起来,表情无比激动(浮夸的演技????????????),具体如下图所示;


6 总结

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

公众号:小麦大叔

CSDN:小麦大叔

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

关注并回复????????????“麦叔的资料”????????????开启成长之旅 ????????????。


原创不易,点一下????在看????,为麦叔的肝保驾护航

????????????

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小麦大叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值