STM32G030C8T6:定時器1ms中斷(以64MHz外部晶振為例)

本專欄記錄STM32開發各個功能的詳細過程,方便自己后續查看,當然也供正在入門STM32單片機的兄弟們參考;

本小節的目標是,系統主頻64 MHZ,采用高速外部晶振,通過定時器3 每秒中斷控制 PB9 引腳輸出高低電平,從而實現 LED 燈的亮滅。
原理:通過配置定時器3每1mS進入中斷一次,每進入中斷服務程序一次,增加一次計數,計數到達500,控制PB9引腳輸出高或低電平,從而實現1S鐘周期閃爍。。
涉及到的知識:配置UART引腳,定時器中斷,STM32CubeMX的使用

文章目錄

  • 1 新建工程
  • 2 配置SWD下載引腳
  • 3 配置GPIO輸出
  • 4 配置RCC
  • 5 設置系統主頻
  • 6 定時器配置
    • 6.1 錯誤配置記錄
    • 6.2 正確配置
  • 7 生成工程
  • 8 增加代碼實現每1S 控制PB9 引腳輸出高或者低電平

1 新建工程

點擊File 菜單下的New Project

在這里插入圖片描述

選擇芯片型號,如下圖所示先輸入芯片型號,目前這邊輸入STM32G030C8,

在這里插入圖片描述

雙擊選擇,就確定了芯片型號,界面會變成如下圖所示

在這里插入圖片描述

2 配置SWD下載引腳

如下圖所示,在Pinout&Configuration 欄目的System Core 下,先點擊SYS,再勾選Serial Wire 框,
配置好SWD 下載引腳設置:

在這里插入圖片描述

3 配置GPIO輸出

按下圖 的1,2,3 步驟完成PB9 引腳配置成GPIO 輸出設置:

在這里插入圖片描述

配置成功后如下圖所示:
在這里插入圖片描述

4 配置RCC

如下圖,先點擊RCC,在HSE 配置中選擇Crystal/Ceramic Resonator 外部晶振設

在這里插入圖片描述

5 設置系統主頻

如下圖, 先點擊Clock Configuration 欄目,按下圖的1,2,3,4 步驟完成系統64MHZ 主頻設置:

在這里插入圖片描述

6 定時器配置

6.1 錯誤配置記錄

如下圖的1,2,3,4 步驟完成定時器1ms 計時:
(注意,這里我踩了一個坑,誤以為Clock source中的Internal Clock為內部時鐘,而我是使用的外部晶振,所以我一直選擇了第二個選項ETR2。其實第二個選項是ETR2 外部觸發輸入(ETR)(僅適用TIM2,3,4),意思外接界的其他信號源;正確的應該是:外部晶振也是internal clock ,相當于使用外部時鐘分頻來的時鐘,只要你rcc配置的是外部晶振就沒事),所以下面的示例是錯誤的,正確過程請參考6.2
在這里插入圖片描述

ETR2 外部觸發輸入(ETR)(僅適用TIM2,3,4),意思外接界的其他信號源。

如下圖所示完成TIM3 中斷使能:

在這里插入圖片描述

6.2 正確配置

如下圖的1,2,3,4 步驟完成定時器1ms 計時:
在這里插入圖片描述
因為我們選擇的是64MHz的外部時鐘,64分頻,1000計數時,1ms產生一次中斷。
上圖中各個參數的計數以及計數器周期計算方法如下:

Clock Source(時鐘來源) :本文中使用的64MHz外部晶振也要使用Internal Clock
計數器設置:
Prtscaler (定時器預分頻系數) : 63
Counter Mode(計數模式) : Up(向上計數模式)
Counter Period(自動重裝載值) : 999
CKD(時鐘分頻因子) : No Division 不分頻 (可以選擇二分頻和四分頻 )
auto-reload-preload(自動重裝載) : Disable 不使能
定時器的定時周期計算方法:
T = (psc+1)(arr+1)/Tclk 其中psc 為定時器預分頻系數 arr為自動重裝載值 Tclk為系統時鐘頻率
通過計算 T = (psc+1)(arr+1)/Tclk=(63+1)(999+1)/64us=1000us=1ms

因此實現了1ms中斷。

如下圖所示完成TIM3 中斷使能:

在這里插入圖片描述

7 生成工程

按照下圖的步驟,進行項目配置,項目名稱和路徑設置等,生成項目的類型選擇STM32CubeIDE(我這里以STM32CubeIDE為例,如果你要試用keil5,那就選擇MDK-RAM,如果要使用makefile,就選擇Makefile),注意項目名稱和路徑不要有中文名;
在這里插入圖片描述

最后全部設置完畢后點擊create code,生成項目代碼:

在這里插入圖片描述

生成的工程如下圖所示:
在這里插入圖片描述

8 增加代碼實現每1S 控制PB9 引腳輸出高或者低電平

如下圖,如箭頭所示實現1ms 中斷回調函數中實現計數到500ms 后PB9 翻轉輸出,

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//1ms中斷回調函數
{TimeCounter++;if(TimeCounter>=500)//500ms時間到{TimeCounter=0;HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);//LED反轉輸出}
}

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

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

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

相關文章

20240222作業

完善對話框,點擊登錄對話框,如果賬號和密碼匹配,則彈出信息對話框,給出提示“登錄成功",提供一個Ok按鈕,用戶點擊OK后,關閉登錄界面,跳轉到其他界面 如果賬號和密碼不匹配&…

Java基礎-注解

注解 注解是用來干什么的它有什么作用注解的常見分類內置注解Override注解定義 Deprecated注解定義 SuppressWarnings注解定義 元注解Target注解定義ElementType Retention&&RetentionTarget注解定義RetentionPolicy Documented注解定義 Inherited注解定義用法 Repeata…

低代碼開發:推動互聯網企業數字化轉型的關鍵因素

聯網行業作為我國數字經濟發展的核心驅動力,在推動國家數字化轉型中扮演著至關重要的角色。與其他傳統行業相比,互聯網企業面臨更加緊迫的數字化轉型需求,因為它們需要不斷適應快速變化的市場環境和技術趨勢。 然而,由于互聯網企業…

深入理解APDU協議與Java開發

1. 什么是APDU? APDU,即應用協議數據單元(Application Protocol Data Unit),是一種在智能卡與卡片讀卡器之間進行通信的協議。APDU定義了在交互中傳輸的數據格式和規則,允許讀卡器發送指令并接收響應。 2…

MFC 皮膚庫配置

1.創建MFC 對話框 2.添加皮膚資源 添加資源 添加頭文件 關閉SDL檢測 添加靜態庫文件 修改字符集 添加頭文件 將皮膚中的ssk文件加載到初始化實例中 > 運行即可

springboot 的 websocket 里面使用 @Autowired 注入 service 或 bean 時,報空指針異常

直接上解決方案: 在你的WebSocketServer服務器中 public static MessageService messageService; //要注入的類// 注入的時候,給類的 service 注入Autowiredpublic void setChatService(MessageService messageService) {WebSocketServer.messageSer…

【寸鐵的刷題筆記】樹、dfs、bfs、回溯、遞歸(一)

【寸鐵的刷題筆記】樹、dfs、bfs、回溯、遞歸(一) 大家好 我是寸鐵👊 總結了一篇刷題關于樹、dfs、bfs、回溯、遞歸的文章? 喜歡的小伙伴可以點點關注 💝 105. 從前序與中序遍歷序列構造二叉樹 模擬分析圖 代碼實現 /*** Definition for a binary tre…

HarmonyOS—添加/刪除Module

Module是應用/服務的基本功能單元,包含了源代碼、資源文件、第三方庫及應用/服務配置文件,每一個Module都可以獨立進行編譯和運行。一個HarmonyOS應用/服務通常會包含一個或多個Module,因此,可以在工程中創建多個Module&#xff0…

如何利用內網穿透工具在企業微信開發者中心實現本地接口服務回調

文章目錄 1. Windows安裝Cpolar2. 創建Cpolar域名3. 創建企業微信應用4. 定義回調本地接口5. 回調和可信域名接口校驗6. 設置固定Cpolar域名7. 使用固定域名校驗 企業微信開發者在應用的開發測試階段,應用服務通常是部署在開發環境,在有數據回調的開發場…

SQL查詢每個類別價格前3的數據

SELECTproduct_id,category,price FROM (SELECTproduct_id,category,price,ROW_NUMBER() OVER (PARTITION BY category ORDER BY price) AS rankFROMyour_products_table ) AS ranked_products WHERErank < 3;DENSE_RANK() 和 ROW_NUMBER() 是窗口函數&#xff08;Window Fu…

前端知識復習

1.symbol類型 Symbol 是 ECMAScript 6 中引入的一種新的基本數據類型&#xff0c;它表示獨一無二的值。Symbol 值是通過 Symbol() 函數創建的。 Symbol 值具有以下特點&#xff1a; 獨一無二性&#xff08;唯一性&#xff09;&#xff1a;每個通過 Symbol() 函數創建的 Symb…

十三:集合

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 01、Java 集合框架概述1.1、集合框架與數組的對比及概述1.2、集合框架涉及到的API 02、Collection接口方法2.1、Collection接口中的常用方法12.2、Collection接口中…

在idea中配置Tomcat

1.在idea中點擊右上角 2.點擊Edit Configurations,點擊加號 3.向下拉找到Tomcat Server下的Local,點一下 點擊Configure 找到tomcat文件路徑,選擇apache-tomcat-8.5.63(8.5.63是我的版本號) 選擇好路徑后點ok就配置好了 總步驟:

Vue 圖片輪播第三方庫 Vue-awesome-swiper介紹及簡單例子

vue-awesome-swiper 是一個基于 Swiper 的 Vue 輪播圖組件&#xff0c;Swiper 是一個流行的移動端觸摸滑動插件。它為 Vue.js 應用提供了一套豐富的輪播組件&#xff0c;支持多種布局和功能&#xff0c;如自動播放、無限循環、觸摸滑動等。 安裝 首先&#xff…

代碼隨想錄算法訓練營第一天

● 今日學習的文章鏈接和視頻鏈接 ● 自己看到題目的第一想法 1. 704二分法&#xff1a; 方法一&#xff1a; 整個數組是 左閉右閉區間 [ ] left指針指向數組開始下標&#xff0c; right 指針指向數組最后下表nums.size()-1, mid為 (leftright) /2循環條件 left<rightnu…

打開stable diffusion webui時,提示缺少clip或clip安裝不上的解決方案(windows下的操作)

1.問題描述 打開stable diffusion webui時&#xff0c;提示缺少clip或clip安裝不上 2.解決方案 原因&#xff1a;stable diffusion webui環境中的clip其實是open_clip&#xff0c;不能用pip install clip安裝解決方法是直接到github下載 open_clip 代碼到本地&#xff0c;并…

linux環境ssh-rsa進行簽名\權限\登錄\原理(免密登錄)

linux環境ssh-rsa進行簽名權限登錄(免密登錄) SSH原理與運用什么是SSH?SSH的使用場景ssh-rsa獲取xshell環境登錄獲取ssh-rsa使用ssh-rsa登錄SHA系列SHA-1、SHA-256和RSA的區別RSA原理數論基礎RSA機制RSA數學密鑰生成公式RSA數學加密理論RSA數學簽名公式

小折疊也能成為主力機,全新小折疊旗艦華為Pocket 2正式發布

2024年2月22日&#xff0c;華為在三亞舉辦華為Pocket 2時尚盛典&#xff0c;正式發布其全新小折疊旗艦華為Pocket 2。一直以來&#xff0c;華為致力于萃取各界藝術靈感&#xff0c;不斷探尋科技美學的可能性&#xff0c;華為Pocket系列更是秉承將奢雅美學與尖端科技融為一體的理…

探索Redis是否為單線程的奧秘(文末送書)

&#x1f308;個人主頁&#xff1a;聆風吟 &#x1f525;系列專欄&#xff1a;數據結構、網絡奇遇記 &#x1f516;少年有夢不應止于心動&#xff0c;更要付諸行動。 文章目錄 &#x1f4cb;前言一. Redis中的多線程二. I/O多線程三. Redis中的多進程四. 結論五. 書籍推薦5.1 書…

高效時間管理法則

你是否天天在忙&#xff0c;是否忙的不得要領&#xff0c;認真領會時間管理的四象限工作法&#xff0c;它會讓你的工作變得高效。 目錄 一、時間管理的誤區 二、時間是如何被浪費的&#xff1f; 內部因素 外部因素 三、時間管理的5個階段 1.公雞型時間管理&#xff1a; …