TIM 實現定時中斷【STM32L4】【實操】

使用定時器實現定時中斷的功能:比如每1ms進入中斷處理函數

使用STM32CubeMX配置TIM初始化

?先了解每個參數的含義,在進行配置

Counter Settings:? 計數器基本設置

? ? ? ? Prescaler(PSC):? 預分頻器,設置預分頻器系數

? ? ? ? Counter Mode:? 技術模式,上/下/中央對齊

? ? ? ? Counter Period(AutoReload Register):? 計數周期,ARR的值

? ? ? ? Internal Clock Division:? 內部時鐘頻率,對輸入到定時器內部的時鐘進行分頻,位于預分頻器后面,作用是:數字濾波、信號同步、噪聲抑制

? ? ? ? auto-reload preload:? 自動裝載預裝載,影子寄存器,是否啟用

Trigger Output(TRGO) Parameters:? 觸發輸出參數?

? ? ? ? Master/Slave Mode:? 主從模式選擇

? ? ? ? Trigger Event Selection:? 觸發事件選擇,觸發輸出TRGO

?**************************

使用的L4進入定時器的頻率是 80Mhz

我們選擇80分頻,就是1Mhz,1000 / 1000 000 = 0.001s,就是1ms

int main(void)
{HAL_Init();SystemClock_Config();MX_TIM4_Init();// 以中斷模式啟動定時器// 啟動后 會一直循環 不會停止if (HAL_TIM_Base_Start_IT(&htim4) != HAL_OK){Error_Handler();}while (1){}
}// 用戶的中斷回調函數 編寫自己所需功能
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM4){// 比如使 LED 亮滅HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); }
}
void MX_TIM4_Init(void)
{ TIM_ClockConfigTypeDef sClockSourceConfig = {0}; // TIM時鐘配置結構體TIM_MasterConfigTypeDef sMasterConfig = {0};  // TIM主機配置結構體htim4.Instance = TIM4;htim4.Init.Prescaler = 79;        // 分頻系數htim4.Init.CounterMode = TIM_COUNTERMODE_UP;      // 向上計數模式htim4.Init.Period = 1000;     // 計數周期htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;        // 內部時鐘分頻htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;    // 自動重裝載影子寄存器if (HAL_TIM_Base_Init(&htim4) != HAL_OK){Error_Handler();}sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;    //  選擇內部時鐘源if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK){Error_Handler();}sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;       // 主輸出觸發源復位sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;      // 不使能主機模式if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK){Error_Handler();} }void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{if(tim_baseHandle->Instance==TIM4){ __HAL_RCC_TIM4_CLK_ENABLE();        // 打開TIM4時鐘/* TIM4 interrupt Init */HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);      // 設置TIM4中斷優先級HAL_NVIC_EnableIRQ(TIM4_IRQn); }
}

?


?

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

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

相關文章

Elasticsearch 的聚合(Aggregations)操作詳解

目錄 1. 概述 2. 聚合類型分類詳解 2.1 桶聚合(Bucket Aggregations) 2.1.1 基礎桶聚合 2.1.2 特殊桶聚合 2.1.3 高級桶聚合 2.2 指標聚合(Metric Aggregations) 2.2.1 單值指標聚合(Single-value Metrics&am…

電子電氣架構 --- 高階智能駕駛對E/E架構的新要求

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

0.深度學習環境配置步驟

0.深度學習環境配置步驟 這里介紹深度學習環境配置詳細步驟,包括安裝軟件,每一步都有安裝時的截圖(后續持續更新,敬請關注) 目錄如下: 1.安裝anaconda 2.安裝CUDA 3.安裝CU_DNN 4.安裝pytorch

在 Azure 中配置 SMS 與 OTP

1. Azure Active Directory B2C (AAD B2C) 中的 SMS/OTP 身份驗證 1.1. 現狀與原理:電話注冊與登錄 Azure Active Directory B2C (AAD B2C) 提供了將電話號碼作為用戶身份標識進行注冊和登錄的功能,旨在為用戶提供一種便捷的替代傳統電子郵件或用戶名登錄…

簡單實現支付密碼的頁面及輸入效果

干我們這行,風吹日曬不到,就怕甲方突發奇想。 今天客戶要做一個安全密碼前置校驗,還要做成支付寶那種效果。ps:android端 心理吐槽了一萬遍以后,還是得面對現實。 先用通義問一遍,給了兩個方案,要么自己寫&…

proxmox 解決docker容器MongoDB創建報錯MongoDB 5.0+ requires a CPU with AVX support

目錄 最簡單直接的方式 測試MongoDB docker compose的安裝shell腳本 驗證訪問 最簡單直接的方式 讓虛擬機直接使用宿主機的物理 CPU 功能標志。 打開 Proxmox Web UI。 選擇你的 VM → 硬件 (Hardware) → CPU → 點擊 編輯 (Edit)。 將 CPU 類型改為 host。 確認并重啟…

向前滾動累加SQL 實現思路

一、業務背景在經營分析場景里,我們經常需要回答:“截至今天,過去 N 天/月/周累計發生了多少?”“把維度切到省、市、房型、項目經理、代理商等,結果又是什么?”本文用兩個真實需求做演示:以天為…

Spring AI(14)——文本分塊優化

RAG時,檢索效果的優劣,和文本的分塊的情況有很大關系。SpringAI中通過TokenTextSplitter對文本分塊。本文對SpringAI提供的TokenTextSplitter源碼進行了分析,并給出一些自己的想法,歡迎大家互相探討。查看了TokenTextSplitter的源…

Python----大模型(RAG 的智能評估-LangSmith)

一、LangSmith LangSmith是LangChain的一個子產品,是一個大模型應用開發平臺。它提供了從原 型到生產的全流程工具和服務,幫助開發者構建、測試、評估和監控基于LangChain 或其他 LLM 框架的應用程序。 安裝 LangSmith pip install langsmith0.1.137 官網…

磁懸浮軸承轉子不平衡質量控制策略設計:原理、分析與智能實現

磁懸浮軸承(Active Magnetic Bearing, AMB)以其無接觸、無摩擦、高轉速、無需潤滑等革命性優勢,在高端旋轉機械領域(如高速電機、離心壓縮機、飛輪儲能、航空航天動力系統)展現出巨大潛力。然而,轉子固有的質量不平衡是AMB系統面臨的核心挑戰之一,它誘發強同步振動,威脅…

C++查詢mysql數據

文章目錄 文章目錄 1.前言 2. 代碼 (1)執行查詢SQL (2)獲取結果集 (3)遍歷結果集(獲取字段數、行數) (4)釋放資源 3.完整代碼 1.前言 我們成功連接數…

【論文閱讀】-《GenAttack: Practical Black-box Attacks with Gradient-Free Optimization》

GenAttack:利用無梯度優化的實用黑盒攻擊 Moustafa Alzantot UCLA Los Angeles, U.S.A malzantotucla.edu Yash Sharma Cooper Union New York, U.S.A sharma2cooper.edu Supriyo Chakraborty IBM Research New York, U.S.A supriyous.ibm.com Huan Zhang UCLA Los…

CT、IT、ICT 和 DICT區別

這四個術語:CT、IT、ICT 和 DICT,是信息通信行業中常見的核心概念,它們既有演進關系,又有各自的技術重點。🔹 一、CT(Communication Technology)通信技術**定義:**以語音通信為核心的…

Effective C++ 條款4:確定對象被使用前已先被初始化

Effective C 條款4:確定對象被使用前已先被初始化核心思想:永遠在使用對象前將其初始化。未初始化對象是未定義行為的常見來源,尤其對于內置類型。 1. 內置類型手動初始化 int x 0; // 手動初始化 const char* text &quo…

LangSmith的配置介紹

文章目錄注冊及登錄生成API KeyLangSmith的配置方式一:放運行環境里方式二:寫代碼里執行代碼查看LangSmith上是否看到本次運行的項目記錄LangSmith的其他注意注冊及登錄 首先使用郵箱注冊一個賬號及設置密碼,等收到收到郵件后,進…

Linux的生態與軟件安裝

堅持用 清晰易懂的圖解 代碼語言,讓每個知識點變得簡單! 🚀呆頭個人主頁詳情 🌱 呆頭個人Gitee代碼倉庫 📌 呆頭詳細專欄系列 座右銘: “不患無位,患所以立。” Linux的生態與軟件安裝前言目錄…

3.4 安全-分布式-數據庫-挖掘

一、數據庫的安全數據庫里面的安全措施:用戶標識和鑒定:用戶的賬戶口令等存取控制:對用戶操作進行控權,有對應權限碼才能操作。密碼存儲和傳輸:加密存儲。視圖的保護:視圖需要授權審計:專門的文…

多線程 Reactor 模式

目錄 多線程 Reactor 模式的核心動機 多線程演進方向 多線程 Reactor 模型結構 多線程 EchoServer 實現核心部分 Handler 的多線程化 多線程 Reactor 的三個核心點 本篇文章內容的前置知識為 單線程 Reactor 模式,如果不了解,可點擊鏈接學習 單線程…

[NLP]多電源域設計的仿真驗證方法

多電源域設計的仿真驗證方法 1. 更復雜的 Testbench 例子(多電源域、復雜低功耗場景) 假設有兩個電源域 PD1 和 PD2,分別對應控制信號 pwr_sw_ctrl1、iso_ctrl1、ret_ctrl1 和 pwr_sw_ctrl2、iso_ctrl2、ret_ctrl2,且兩域之間有通信。 RTL 端口聲明(簡化版) module top…

Apache Ignite 中 WHERE 子句中的子查詢(Subqueries in WHERE Clause)的執行方式

這段內容是關于 Apache Ignite 中 WHERE 子句中的子查詢(Subqueries in WHERE Clause)的執行方式 的說明。理解這段內容對于編寫高效的 SQL 查詢、避免性能瓶頸非常重要。下面我將為你 逐句解釋并深入理解這段內容。🧾 原文翻譯 解釋 原文&a…