STM32實戰 2 | STM32CubeMX及HAL庫點亮LED

      網友投稿 1725 2025-03-31

      一、安裝Java環境

      STM32CubeMX是在Java環境下運行的,所以這里我們先在電腦安裝Java環境。

      JDK即Java Develop Kit,廣泛使用的版本是JDK 8

      官方網站鏈接:https://www.oracle.com/java/technologies/downloads/

      下載之后運行安裝包,一路next即可完成安裝,建議安裝到C盤默認路徑。

      配置環境變量(重點)

      首先配置JAVA_HOME環境變量:

      然后再將JAVA_HOME配置到Path環境變量中:

      檢查是否配置成功:(cmd:java -version)

      二、安裝STM32CubeMX

      1.STM32CubeMX官網鏈接:https://www.st.com/en/development-tools/stm32cubemx.html

      2.選擇對應平臺的安裝包下載,這里我選擇Windows平臺:

      解壓后雙擊exe文件運行安裝程序

      安裝步驟:

      安裝完成:

      三、獲取且安裝STM32Cube MCU Packages

      四、點亮LED

      1. 準備事項

      硬件:

      這里我準備的是ST意法官方STM32G070的開發板(STM32G070-Nucleo-64)

      軟件:

      STM32CubeMX

      芯片對應的Package

      Keil-MDK

      2.生成MDK初始工程(HAL庫)

      1.MCU選擇器:

      2.配置時鐘源(系統的“脈搏”)

      選用外部高速時鐘(HSE:外接晶振通過PLL倍頻到高速),需要在System Core配置RCC

      選用默認的內部時鐘(HSI:無需外部晶振的內部時鐘),可以略過這步

      這里我使用外部時鐘:

      關于時鐘源的講解: ①LSI 是低速內部時鐘,RC 振蕩器,頻率為 32kHz 左右。供獨立看門狗和自動喚醒單元使用。 ②LSE 是低速外部時鐘,接頻率為 32.768kHz 的石英晶體。這個主要是 RTC 的時鐘源。 ③HSE是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,頻率范圍為 4MHz~26MHz。當使用有源晶振時,時鐘從 OSC_IN 引腳進入,OSC_OUT 引腳懸空,當選用無源晶振時,時鐘從 OSC_IN 和 OSC_OUT進入,并且要配諧振電容。HSE 我們使用 8M的無源晶振。如果我們使用 HSE或者 HSE經過 PLL倍頻之后的時鐘作為系統時鐘 SYSCLK。野火和正點原子的F429開發板接的是 25M 的晶振。安富萊的開發板是8M外接晶振。HSE 也可以直接做為系統時鐘或者 PLL 輸入。 ④HSI 是高速內部時鐘,RC 振蕩器,頻率為 16MHz。可以直接作為系統時鐘或者用作 PLL輸入。 ⑤PLL 為鎖相環倍頻輸出。STM32F4 有三個 PLL:主 PLL(PLL)由 HSE 或者 HSI 提供時鐘信號,并具有兩個不同的輸出時鐘。另外兩個 PLL(PLLI2S)和 PLL(PLLSAI)用于生成精確時鐘,在 I2S 和 SAI1 上實現高品質音頻性能。很少用先不看

      3.配置LED的GPIO引腳

      查找開發板相關資料:

      意法開發板資料名稱檢索法:型號(Nucleo)+MCU型號

      查找LED相關部分:用戶LED對應引腳為PA5

      所以我們配置PA5引腳:

      4.配置時鐘樹

      STM32G070最高主頻:64M

      STM32CubeMX可以通過圖形化界面直接配置PLL,使HCLK = 64MHz即可

      時鐘樹配置原理:

      主 PLL 時鐘的時鐘源要先經過一個分頻系數為 M 的分頻器,然后經過倍頻系數為 N 的倍頻器出來之后還需要經過一個分頻系數為 P(第一個輸出 PLLP)或者 Q(第二個輸出 PLLQ)的分頻器分頻之后,最后才生成最終的主 PLL 時鐘。例如我們的外部晶振選擇 8MHz。同時我們設置相應的分頻器 M=8,倍頻器倍頻系數 N=336,分頻器分頻系數 P=2,那么主 PLL 生成的第一個輸出高速時鐘 PLLP 為:8MHZ/8*336/2=168

      PLL=8MHz * N/ (M*P)=8MHz* 336 /(8*2) = 168MHz

      如果我們選擇HSE為PLL時鐘源,同時SYSCLK時鐘源為PLL,那么SYSCLK時鐘為 168MHz。看下面的程序也是這樣的,說明計算無誤。

      助記:因為2大于1,所以APB2外設時鐘也一定要大于APB1外設時鐘。

      5.工程、代碼生成設置

      生成代碼

      點擊GENERATE CODE即可生成MDK-V5工程:

      STM32實戰 2 | STM32CubeMX及HAL庫點亮LED

      6.在MDK軟件下編寫、編譯、下載用戶代碼

      STM32CubeMX生成的代碼目錄如下:

      進入MDK-ARM目錄,打開工程:

      在main.c中的main函數中編寫簡單的用戶代碼:

      while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ /* USER CODE END 3 */ HAL_Delay(100); HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); }

      編譯代碼(Build)

      然后編譯整個工程:

      設置下載器

      下載運行(Load):

      實驗現象:

      成功點亮User LED

      資料參考:

      MCUlover666

      果果小師弟

      STM32意法官網

      單片機 硬件開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel文件圖標變成白色的怎么解決?(excel的文件圖標變白色了)
      下一篇:數據倉庫、數據湖,到數據中臺的差異與架構演進
      相關文章
      国产精品久久亚洲不卡动漫| 亚洲成AV人在线播放无码| 国产亚洲美女精品久久久久狼| 怡红院亚洲红怡院在线观看| 久久久久se色偷偷亚洲精品av | 亚洲综合一区二区| 亚洲va中文字幕无码久久| 在线亚洲97se亚洲综合在线| 久久久久亚洲AV无码专区网站| 国产成人亚洲综合无码| 亚洲一区二区精品视频| 亚洲 另类 无码 在线| 久久亚洲中文无码咪咪爱| 亚洲AV无码一区二区三区鸳鸯影院| 亚洲国产精品久久久久秋霞小| 亚洲国产精品成人午夜在线观看| 亚洲日本va一区二区三区| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲精彩视频在线观看| 亚洲精品中文字幕无码AV| 亚洲精品福利网站| 亚洲人成电影在线观看网| tom影院亚洲国产一区二区| 亚洲综合色区中文字幕| 亚洲日本中文字幕天天更新| 亚洲成av人无码亚洲成av人| 国产亚洲综合视频| 亚洲无线一二三四区手机| 亚洲日产无码中文字幕| 亚洲AV无码精品无码麻豆| 亚洲小视频在线观看| 亚洲国产美女精品久久久久| 亚洲一区精彩视频| 亚洲成av人片天堂网无码】| 国产亚洲综合视频| 亚洲精品二区国产综合野狼| 亚洲AV无码不卡在线播放| 亚洲日韩国产精品无码av| 中文有码亚洲制服av片| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲 小说区 图片区 都市|