HAL庫點LED燈

文章目錄

  • 一、創建CubeMX項目
    • 操作步驟
      • 1.STM32CubeMX創建工程
      • 2.選擇芯片
      • 3.Pinout & Configuration配置
      • 4.Clock Configuration配置
      • 5.Project Manager配置
  • 二、實驗
    • (一)LED流水燈
      • 1.Keil修改代碼
      • 2.實驗現象
      • 3.keil波形仿真
    • (二)2只LED燈的周期性閃爍
      • 1.Keil修改代碼
      • 2.實驗現象
      • 3.波形仿真
    • (三)中斷控制流水燈
      • 1.步驟
      • 2.keil代碼部分
      • 3.實驗現象
      • 4.keil波形仿真
  • 三、總結

一、創建CubeMX項目

操作步驟

1.STM32CubeMX創建工程

打開STM32CubeMX,新建工程。
在這里插入圖片描述

2.選擇芯片

在這里插入圖片描述

3.Pinout & Configuration配置

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.Clock Configuration配置

在這里插入圖片描述

5.Project Manager配置

在這里插入圖片描述
注意保存文件的路徑不能含有中文字符。

在這里插入圖片描述

在這里插入圖片描述
至此,接下來會進入keil,并自動創建keil的代碼。

二、實驗

(一)LED流水燈

重做上一個LED流水燈作業

1.Keil修改代碼

在main()函數的while(1)循環里修改代碼

在這里插入圖片描述

直接編譯,下載。

2.實驗現象

20240520_001

3.keil波形仿真

在這里插入圖片描述
在這里插入圖片描述

(二)2只LED燈的周期性閃爍

用GPIO端口完成2只LED燈的周期閃爍。

1.Keil修改代碼

在main()函數的while(1)循環里修改代碼

代碼:

	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);HAL_Delay(250); //延時0.25sHAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);HAL_Delay(250); //延時0.25s

在這里插入圖片描述

2.實驗現象

20240524_001

3.波形仿真

在這里插入圖片描述

(三)中斷控制流水燈

接上,再用GPIO端某一管腳接2個開關(用杜邦線模擬代替)。采用中斷模式編程,當2分開關接高電平時,對應的兩個LED燈停止工作(即停止周期性閃爍),接低電平時,恢復工作。(參考教材圖6-12)

思路:用PB1作為開關,杜邦線一端接入PB1,另一端接入

1.步驟

①將PB0和PB1設置為外部中斷源,PA8和PA9作為輸出端口用來接小燈。
在這里插入圖片描述

②設置中斷源PB0和PB1為上升沿觸發,默認為下拉輸入。
在這里插入圖片描述

③設置PA8、PA9輸出口的速度為high。

在這里插入圖片描述

④開啟中斷。在這里插入圖片描述

⑤查看有關中斷函數
在這里插入圖片描述
在這里插入圖片描述

2.keil代碼部分

①重寫弱函數

 HAL_GPIO_EXTI_Callback(GPIO_Pin){if(GPIO_Pin == GPIO_PIN_0|GPIO_PIN_1){HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,GPIO_PIN_SET);	}
}

②main()中的while(1)循環

  while (1){HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);HAL_Delay(250); //延時0.25sHAL_GPIO_TogglePin(GPIOA,GPIO_PIN_9);HAL_Delay(250); //延時0.25s}

3.實驗現象

20240524——002

4.keil波形仿真

在這里插入圖片描述

三、總結

中斷是STM32學習的一個重點,也是一個難點。要深刻理解中斷標志位、明白中斷開始和結束的條件,這幾個關鍵點,才更有助于我們學習中斷。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14551.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼隨想錄(棧和隊列)

用棧實現隊列(Leetcode232) package 棧和隊列;import java.util.ArrayList; import java.util.Stack; 思路:1、用一個棧stack2來存壓入的數,當要pop或peek操作時再壓入stack中,實現隊列順序2、不是每次pop都從stack2中…

沒有CAN硬件,在Linux下模擬使用Socket CAN

即使沒有實際的CAN硬件,我們仍然可以在Linux下使用socketcan進行模擬。這可以通過使用虛擬的CAN接口(vcan)來實現。vcan接口是Linux內核提供的虛擬CAN總線接口,適用于開發和測試socketcan應用。 以下是如何設置和使用vcan接口的步驟: 1. 加載vcan模塊 首先,你需要確保…

變量命名的藝術:讓你的代碼更具可讀性

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一、引言:為何變量命名如此重要? 二、變量命名的基本規則 1. 避免數…

卷爆短劇出海:五大關鍵,由AIGC重構

短劇高溫下,談談AIGC的助攻路線。 短劇,一個席卷全球的高溫賽道。 以往只是踏著霸總題材,如今,內容循著精品化、IP化的自然發展風向,給內容、制作、平臺等產業全鏈都帶來新機,也讓短劇消費走向文化深處&am…

Docker僅需3步搭建免費私有化的AI搜索引擎-FreeAskInternet!

簡介 FreeAskInternet 是一個完全免費、私有且本地運行的搜索引擎,并使用 LLM 生成答案,無需 GPU。用戶可以提出問題,系統會進行多引擎搜索,并將搜索結果合并到ChatGPT3.5 LLM中,并根據搜索結果生成答案。 什么是 Fr…

重學java 39.多線程 — 線程安全

逐漸成為一個情緒穩定且安靜成長的人 ——24.5.24 線程安全 什么時候發生? 當多個線程訪問同一個資源時,導致了數據有問題,出現并發問題,數據不能及時更新,導致數據發生錯誤,出現線程安全問題 多線程安全問…

紋理映射技術在AI去衣中的藝術與科技融合

引言: 在數字圖像處理的世界里,AI去衣技術正逐步揭開其神秘的面紗。這門技術結合了深度學習的智能算法與圖形學的先進手段,以實現對圖像中衣物的智能識別與處理。在這一過程中,紋理映射技術發揮著至關重要的作用。本篇博客將深入探…

變量命名的藝術:從蛇形到駝峰

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一、蛇形命名法的魅力 二、類名和模塊名的特殊規則 三、駝峰命名法的魅力與挑戰 四、保持…

【kubernetes】探索k8s集群中kubectl的陳述式資源管理

目錄 一、k8s集群資源管理方式分類 1.1陳述式資源管理方式:增刪查比較方便,但是改非常不方便 1.2聲明式資源管理方式:yaml文件管理 二、陳述式資源管理方法 2.1查看版本信息 2.2查看資源對象簡寫 2.3配置kubectl自動補全 2.4node節點…

初始Java篇(JavaSE基礎語法)—— 內部類

找往期文章包括但不限于本期文章中不懂的知識點: 個人主頁:我要學編程(?_?)-CSDN博客 所屬專欄:JavaSE 目錄 內部類的概念 內部類的種類 使用舉例: 1. 靜態內部類: 2. 實例內部類 3. 局部內部類 4. 匿名內部…

1分鐘帶你搞定Pandas DataFrame運算

1. DataFrame之間的運算 在運算中自動對齊不同索引的數據 如果索引不對應,則補NaN DataFrame沒有廣播機制 導包 # 導包import numpy as npimport pandas as pd 創建 DataFrame df1 不同人員的各科目成績,月考一 # 創建DataFrame二維數組df1 pd.Da…

想要修改Excel表格內容,怎么移除編輯權限?

在使用Excel進行數據處理和管理時,我們經常會遇到需要保護工作表以防止誤操作的情況。有時可能碰到“被保護單元格不支持此功能”的提示,本文將詳細介紹這個問題的解決方案,幫助你取消單元格保護,使用所需的功能。 一、取消單元格…

leetcode刷題記錄:前綴和

https://labuladong.online/algo/problem-set/perfix-sum/#%E8%A7%A3%E6%B3%95%E4%BB%A3%E7%A0%81-3 適用范圍:快速、頻繁地計算一個索引區間內的元素之和 303 區域和檢索:數組不可變 https://leetcode.cn/problems/range-sum-query-immutable/ class …

【Unitydemo制作】音游制作—排行榜邏輯Json存儲

👨?💻個人主頁:元宇宙-秩沅 👨?💻 hallo 歡迎 點贊👍 收藏? 留言📝 加關注?! 👨?💻 本文由 秩沅 原創 👨?💻 收錄于專欄:就業…

GQL 來了!ISO/IEC 正式發布 GQL 數據庫國際標準!

歷時四年籌備,超過20個國家的標準和技術專家參與制定,ISO/IEC GQL (圖查詢語言)標準于2024年4月12日正式發布! 作為國際標準化組織(ISO)繼 1987年 發布SQL后,唯一發布的數據庫查詢語…

瑞米派Ubuntu系統移植指南-米爾RemiPi

1.概述 Linux系統平臺上有許多開源的系統構建框架,這些框架方便了開發者進行嵌入式系統的構建和定制化開發,目前比較常見的有Buildroot, Yocto, OpenEmbedded等等。 同時更多的傳統的桌面系統也加入到嵌入式環境體系中,如Ubuntu&#xff0c…

Marin說PCB之POC電路layout設計仿真案例---03

今天天中午午休的時候,我剛要打開手機的準備刷抖音看無憂傳媒的學生們的“學習資料”的時候,看到CSDN -APP上有提醒,一看原來是一位道友發的一個問題: 本來小編最近由于剛剛從國外回來,手上的項目都已經結束了&#xf…

如何制作正方形,給 placeholder 換顏色,多行省略號,純css小三角,清除浮動,清除 margin,隱藏滾動條,隱藏 number 小圖標

https://www.npmjs.com/package/sass-runtime-tool yarn add sass-runtime-tool -D # or npm i -D sass-runtime-tool use "sass-runtime-tool/all.scss" as *;// 改變 placeholder 的顏色和大小 .input {include placeholder(red) {font-size: 12px;} } /* 或者 *…

一個模板元函數來檢查一個類是否有一個特定的成員

通過創建一個模板元函數來檢查一個類是否有一個特定的成員。以下是一個例子&#xff1a; #include <type_traits>template<typename T, typename void> struct has_type_member : std::false_type {};template<typename T> struct has_type_member<T, s…

Matlab:音頻處理

用Matlab繪制一段音頻信號在時域上的波形圖&#xff0c;然后用低通濾波器濾掉噪音并再次繪制 1、導入音頻文件 filename X:\1.mp3; % 替換為你的音頻文件路徑 [x, Fs] audioread(filename); 2、獲取音頻信號長度 len length(x); 3、計算時間軸 t (0:len-1) / Fs; 4、…