STM32 基於 CubeMX配置GPIO點亮LED燈(超級詳細+圖文並茂)


 

我是一個只會點燈的菜鳥;


相關文章

【STM32系列匯總】小白博主的STM32實戰快速進階之路(持續更新)

 

 

1 前言

本文基於STSTM32F767ZI NUCLEO144開發板,結合CubeIDE的插件CubeMX配置生成代碼點亮板載的LED,點亮可謂是單片機開發中的hello world,非常簡單;

2 理論分析

2.1 LED 原理

發光二極管簡稱為LED,生活中幾乎無處不在,由含鎵(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。當電子與空穴復合時能輻射出可見光,因而可以用來制成發光二極管。在電路及儀器中作為指示燈,或者組成文字或數字顯示。砷化鎵二極管發紅光,磷化鎵二極管發綠光,碳化硅二極管發黃光,氮化鎵二極管發藍光。因化學性質又分有機發光二極管OLED無機發光二極管LED1

 

在這里插入圖片描述

 

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如下所示;


在這里插入圖片描述根據虛短和虛斷,Vout=200K10K+200KVinV_{out} = \cfrac{200K}{10K+200K}V_{in}Vout=10K+200K200KVin ;感覺像是電壓跟隨器,那Vout=VinV_{out} = V_{in}Vout=Vin, 電路分析水平有點摳腳了;

Pin LED Mode
PB14 RED PP
PB7 BLUE PP
PB0 GREEN PP

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 總結

千里之行,始於點燈,后面還有很長的路要走,暫且先做個記錄。


  1. 百度百科 ↩︎

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM