【stm32/CubeMX、HAL庫】嵌入式實驗五:定時器(2)|PWM輸出

參考:

【【正點原子】手把手教你學STM32CubeIDE開發】 https://www.bilibili.com/video/BV1Wp42127Cx/?p=13&share_source=copy_web&vd_source=9332b8fc5ea8d349a54c3989f6189fd3

《嵌入式系統基礎與實踐》劉黎明等編著,第九章定時器,PWM從P289開始。

【【STM32教程】入門教程(基于HAL庫+CubeMX+MDK-ARM)】 https://www.bilibili.com/video/BV1y7411m7gg/?share_source=copy_web&vd_source=9332b8fc5ea8d349a54c3989f6189fd3

定時器引腳映射

https://blog.csdn.net/weixin_54015326/article/details/135920496

參看上面的文章或者查看手冊(8.3.7):

實驗內容

2、PWM 輸出設計。時鐘頻率為 72Mhz,采用定時器,PWM 輸出。

(1)設計 0.1 毫秒延時,設計占空比 50%,全彩燈 RGB_R.

RGB_R引腳PB13,根據上圖,使用TIM1_CH1N通道。

?下面的CH polarity選擇LOW,pulse設為50,表示占空比為50%(50%=50/(100-1+1))

?

?注意要確認時PB13作為通道復用的引腳

?

無需寫其他代碼。

(2)設置 KB1 調整占空比,5 級調整,循環按鍵。

KB1對應引腳PE0,設置內部上拉,按下為低電平,設置為下降沿觸發中斷:

?勾選該通道的中斷,搶占優先級設為1:

?中斷回調函數:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{HAL_Delay(10);//延時,用來消抖if(GPIO_Pin==GPIO_PIN_0) {if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_0)==RESET){pwm_val=levels[mindex];mindex=(mindex+1)%5;HAL_Delay(1);}}flag=1;}

?主函數:注意開啟CH1N的PWM輸出跟一般定時器寫法不一樣,請看:

https://www.bilibili.com/read/cv22069045/

普通的啟動:

HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) 
//定時器 PWM 輸出啟動函數

?

  /* USER CODE BEGIN 2 *//* 定時1互補輸出PWM */HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,1);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){if(flag==1){__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,pwm_val);HAL_Delay(1);flag=0;}/* USER CODE END WHILE */}

(3)設計全彩燈 RGB_R 呼吸漸變效果。

大部分和(2)一樣,注釋掉(2)在while里的部分,添加:

while(pwm_val<100){pwm_val++;__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,pwm_val);HAL_Delay(1);}while(pwm_val){pwm_val--;__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,pwm_val);HAL_Delay(1);}HAL_Delay(200);

實現簡單的呼吸效果。

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

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

相關文章

8操作系統定義、分類及功能+設備管理+作業管理 軟設刷題 軟考+

操作系統定義、分類及功能設備管理作業管理 知識點1-55-1010-1515-2020-2525-3030-35 刷題操作系統定義、分類及功能1-55-1010-15作業管理1-5設備管理1-55-10 知識點 1-5 1 嵌入式操作系統的特點&#xff1a; 1.微型化&#xff0c;從性能和成本角度考慮&#xff0c;希望占用的…

145.棧和隊列:刪除字符串中的所有相鄰重復項(力扣)

題目描述 代碼解決 class Solution { public:string removeDuplicates(string s) {// 定義一個棧來存儲字符stack<char> st;// 遍歷字符串中的每一個字符for(int i 0; i < s.size(); i){// 如果棧為空或棧頂字符與當前字符不相同&#xff0c;則將當前字符入棧if(st.e…

Jenkins的Pipeline流水線

目錄 前言 流水線概念 什么是流水線 Jenkins流水線 pipeline node stage step 創建一個簡單的流水線 創建Pipeline項目 選擇模板 測試 前言 提到 CI 工具&#xff0c;首先想到的就是“CI 界”的大佬——Jenkjns,雖然在云原生爆發的年代,蹦出來了很多云原生的 CI 工具…

Hive的窗口函數

定義&#xff1a; 聚合函數是針對定義的行集(組)執行聚集,每組只返回一個值.如sum()、avg()、max() 窗口函數也是針對定義的行集(組)執行聚集,可為每組返回多個值.如既要顯示聚集前的數據,又要顯示聚集后的數據.步驟&#xff1a; 1.將記錄分割成多個分區. 2.在各個分區上調用窗…

word-表格疑難雜癥診治

一、用表格進行排版圖片、制作公文頭 可以在插入圖片時固定列寬 二、表格中的疑難雜癥 問題一&#xff1a;表格超過頁面&#xff0c;右側文字看不見 解決&#xff1a;表格窗口-布局-自動調整-根據窗口自動調整表格 問題二&#xff1a;表格底部文字被遮擋 解決&#xff1a;布…

ArcGIS Maps SDK for JS:使用queryFeatures方法查詢 FeatureLayer 中符合條件的要素

文章目錄 方式一&#xff1a;使用featureLayer.createQuery()方法方式二&#xff1a;使用 Query 構造函數方式三&#xff1a;簡化寫法 要想查詢FeatureLayer 圖層中滿足某些條件的要素&#xff0c;可以使用ArcGIS API for JavaScript 提供的queryFeatures() 方法和 Query 對象進…

【linux】yumvim工具理解使用

目錄 Linux 軟件包管理器 yum 關于 rzsz 注意事項 查看軟件包 Linux開發工具 Linux編輯器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 簡單vim配置 配置文件的位置 sudo提權 Linux 軟件包管理器 yum 1.yum是什么&#xff1…

攻防世界---web---warmup

1、題目描述 2、查看源碼&#xff0c;發現有個source.php 3、訪問該文件&#xff0c;得到這一串代碼 4、分析代碼 5、訪問hint.php&#xff0c;提示flag在ffffllllaaaagggg這個文件下 6、構造payload ?filesource.php?/../../../../../../ffffllllaaaagggg

Fitting Parameterized Three-Dimensional Models to Images

摘要 基于模型的識別和運動跟蹤依賴于解決投影和模型參數&#xff0c;使其最佳適應匹配的2D圖像特征的3D模型的能力。本文將當前的參數求解方法擴展到處理具有任意曲面和任意數量的內部參數&#xff08;表示關節、可變尺寸或表面變形&#xff09;的對象。開發了數值穩定化方法…

懶人網址導航頁 search.html SQL注入漏洞復現

0x01 產品簡介 懶人網址導航系統是一種智能化的網址導航平臺,旨在幫助用戶快速找到所需的網址和資源。該系統提供了智能化的網址搜索和推薦功能,能夠根據用戶的搜索習慣和偏好推薦相關的網址和資源。同時,系統還提供了網址分類、網址收藏和網址分享等功能,方便用戶管理和共…

git常見的18條指令

使用git的時候有沒有遺忘指令的情況呢&#xff1f;小編替大家整理出來了18條常用的指令&#xff0c;大家趕緊收藏起來吧&#xff01; gti常見的18條指令 序號指令含義1git init初始化一個倉庫2git clone [url]克隆一個倉庫3git add [file]添加文件到暫存區4git commit -m "…

簡易Docker磁盤使用面板Doku

這個項目似乎有 1 年多沒更新了&#xff0c;最后發布版本的問題也沒人修復&#xff0c;所以看看就行&#xff0c;不建議安裝 什么是 Doku &#xff1f; Doku 是一個簡單、輕量級的基于 Web 的應用程序&#xff0c;允許您以用戶友好的方式監控 Docker 磁盤使用情況。Doku 顯示 D…

easyexcel導出動態標題,以及動態設置下拉選擇,并設置下拉選擇校驗

目錄 1.說明 2.示例 3.總結 1.說明 平時使用easyexcel進行導出時&#xff0c;標題的名字通過在表的實體類上添加注解的方式進行實現&#xff0c;然后傳入表的實體類的集合進行下載即可。 有這么一個需求&#xff0c;用戶可以自定義導出的模板&#xff0c;也就是說導出的模板…

南京沁恒微USB HUB CH334/CH335多種封裝規格選擇,外圍簡單,價格還美麗

概述&#xff1a; CH334 和 CH335 是符合 USB2.0 協議規范的 全速&#xff0c;下行端口支持 USB2.0 高速 480Mbps 個 TT 分時調度 4 個下行端口&#xff09;&#xff0c;還支持高性能的 工業級設計&#xff0c;外圍精簡&#xff0c;可應用于計算機和工控機主板 特點&#xff1…

精品UI響應式視頻教程知識付費系統源碼在線教育網絡課程在線點播可二開分銷分站功能

這是一款知識付費平臺模板&#xff0c;后臺可上傳本地視頻&#xff0c;批量上傳視頻連接&#xff0c; 視頻后臺可設計權限觀看&#xff0c;免費試看時間時長&#xff0c;會員等級觀看&#xff0c;付費觀看等功能&#xff0c; 也帶軟件app權限下載&#xff0c;幫助知識教育和軟件…

域名郵箱是什么?怎么注冊公司的域名郵箱?

擁有一個專業、獨特的郵箱地址不僅能提升企業形象&#xff0c;還能增強客戶信任感。域名郵箱是什么&#xff1f;域名郵箱也稱為企業郵箱或定制郵箱&#xff0c;是一種基于企業自主域名設置的電子郵件服務。本文將詳細介紹域名郵箱的概念、優勢以及如何注冊公司的域名郵箱 一、…

事務的ACID是什么及扁平化事務、鏈式事務

一、什么是事務 1.事務&#xff08;Transaction)是區別于數據庫文件系統的重要特性之一。事務會把數據庫從一種一致狀態轉換為另一種一致狀態。在數據庫提交工作時&#xff0c;可以確保要么所有修改都已經保存&#xff0c;要么所有修改都不保存。 2.InnoDB存儲引擎中的事物完…

WPF實現搜索文本高亮

WPF實現搜索文本高亮 1、使用自定義的TextBlock public class HighlightTextblock : TextBlock{public string DefaultText { get; set; }public string HiText{get { return (string)GetValue(HiTextProperty); }set { SetValue(HiTextProperty, value); }}// Using a Depend…

31.@Anonymous

1?@Anonymous原理 大家應該已經習慣我的教學套路,很多時候都是先使用,然后講述原理。 上節課我們使用了注解@Anonymous,然后接口就可以直接被訪問到了,不用token!不用token!不用token!。 我們一般知道,注解是給程序看的,給機器看的,當然也是給程序員看的。注解如果…

詳解HTML

目錄 1.HTML 結構 1.1認識HTML標簽 1.2標簽層次結構 1.3快速生成代碼框架 2.HTML常見標簽 2.1注釋標簽 2.2標題標簽&#xff1a;h1-h6 2.3段落標簽&#xff1a;p 2.4換行標簽&#xff1a;br 2.5格式化標簽 2.6圖片標簽&#xff1a;img 2.7超鏈接標簽 2.8表格標簽…