籃球組運動組任務(12.19到12.26任務)
籃球組運動組任務(12.19到12.26任務)
本週任務:
理論學習:
1.瞭解STM32時鐘結構
2.瞭解微控制器中的事件和中斷是什麼,弄清它們之間的區別
3.理解中斷優先順序
4.瞭解STM32的定時器,並學習定時器的基本結構和功能
實踐專案:
通過按鍵控制LED燈的亮滅,並利用定時器中斷,對按鍵進行消抖
利用定時器,實現呼吸燈的效果(選做)
理論學習:
1.瞭解STM32時鐘結構
在 STM32 中,有五個時鐘源,為 HSI、HSE、LSI、LSE、PLL。從時脈頻率來分可以分為
高速時鐘源和低速時鐘源,在這 5 箇中 HIS,HSE 以及 PLL 是高速時鐘,LSI 和 LSE 是低速時
鍾。從來源可分為外部時鐘源和內部時鐘源,外部時鐘源就是從外部通過接晶振的方式獲取時
鍾源,其中 HSE 和 LSE 是外部時鐘源,其他的是內部時鐘源。下面我們看看 STM32 的 5 個時
鍾源,我們講解順序是按圖中紅圈標示的順序:
①、HSI 是高速內部時鐘,RC 振盪器,頻率為 8MHz。 ②、HSE 是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,頻率範圍為 4MHz~16MHz。
我們的開發板接的是 8M 的晶振。
③、LSI 是低速內部時鐘,RC 振盪器,頻率為 40kHz。獨立看門狗的時鐘源只能是 LSI,同
時 LSI 還可以作為 RTC 的時鐘源。
④、LSE 是低速外部時鐘,接頻率為 32.768kHz 的石英晶體。這個主要是 RTC 的時鐘源。
⑤、PLL 為鎖相環倍頻輸出,其時鐘輸入源可選擇為 HSI/2、HSE 或者 HSE/2。倍頻可選擇為
ALIENTEK MiniSTM32 V3.0 開發板教程
87
STM32 不完全手冊(HAL 庫版)
2~16 倍,但是其輸出頻率最大不得超過 72MHz。
stm32f103時鐘配置
2.瞭解微控制器中的事件和中斷是什麼,弄清它們之間的區別
事件,Event,可以這麼理解,當MCU系統外設滿足了一定的條件,改變了相應的狀態標誌位,這時候就認為發生了某個事件。
中斷,Interrupt,就是MCU正在執行某項任務,被此項任務外的其他事件打斷,CPU將正在執行的任務暫停(保護現場),轉而執行其他更高優先順序的事件任務(處理中斷),等到這個事件任務執行完成,CPU再返回執行先前被打斷的任務(返回/恢復現場)。觸發中斷的事件也稱為中斷事件。處理中斷的任務也稱為中斷服務程式或中斷程式。中斷屬於正常現象。
事件與中斷事件是包含關係,即事件可分為中斷事件或非中斷事件。中斷事件是一種可以導致中斷髮生的事件。中斷則是因為中斷事件的發生而導致的後續行為過程,因此中斷一定有一個對應的事件,但一個事件不一定對應一箇中斷。從外部激勵訊號來看,中斷和事件的產生源都可以是一樣的。之所以分成2個部分,由於中斷是需要CPU參與的,需要軟體的中斷服務函式才能完成中斷後產生的結果;但是事件,是靠脈衝發生器產生一個脈衝,進而由硬體自動完成這個事件產生的結果。
3.理解中斷優先順序
4.瞭解STM32的定時器,並學習定時器的基本結構和功能
通用定時器是一個通過可程式設計預分頻器驅動的16位自動裝載計數器構成。它適用於多種場合,包括測量輸入訊號的脈衝長度(輸入捕獲)或者產生輸出波形(輸出比較和PWM)。使用定時器預分頻器和RCC時鐘控制器預分頻器,脈衝長度和波形週期可以在幾個微秒到幾個毫秒間調整。每個定時器都是完全獨立的,沒有互相共享任何資源。它們可以一起同步操作。
通用定時器功能
通用TIMx (TIM2、TIM3、TIM4和TIM5)定時器功能包括:
● 16位向上、向下、向上/向下自動裝載計數器。
● 16位可程式設計(可以實時修改)預分頻器,計數器時脈頻率的分頻係數為1~65536之間的任意數值。
● 4個獨立通道:
─ 輸入捕獲
─ 輸出比較
─ PWM生成(邊緣或中間對齊模式)
─ 單脈衝模式輸出
● 使用外部訊號控制定時器和定時器互連的同步電路。
● 如下事件發生時產生中斷/DMA:
─ 更新:計數器向上溢位/向下溢位,計數器初始化(通過軟體或者內部/外部觸發)。
─ 觸發事件(計數器啟動、停止、初始化或者由內部/外部觸發計數)。
─ 輸入捕獲。
─ 輸出比較。
● 支援針對定位的增量(正交)編碼器和霍爾感測器電路。
● 觸發輸入作為外部時鐘或者按週期的電流管理。
實踐專案
通過按鍵控制LED燈的亮滅,並利用定時器中斷,對按鍵進行消抖
成功
利用定時器,實現呼吸燈的效果(選做)
找視訊做了遍,成功了,就是沒太看懂程式碼,等抽空琢磨琢磨。
相關文章
- 中國籃球運動發展
- Python任務排程模組APSchedulerPython
- 使用 Calcurse 在 Linux 命令列中組織任務Linux命令列
- dhtmlxGantt如何對任務進行分組使用教程HTML
- 設計一款籃球經理類遊戲(三):球員升級、裝備、技能與組合遊戲
- 位元組跳動完成2019年業績任務,營收超1400億元營收
- silky微服務模組微服務
- linux定時任務python找不到模組問題解決LinuxPython
- python的schedule定時任務模組二次封裝Python封裝
- 任務佇列,巨集任務與微任務佇列
- Springboot-之定時任務,啟動執行任務Spring Boot
- DAG任務排程系統 Taier 演進之道,探究DataSourceX 模組AI
- 啟動和停止任務
- 位元組跳動為聚焦主營業務OKB
- 程式設計思路-球連球組成的群程式設計
- 巨集任務和微任務
- 為開源專案 go-gin-api 增加後臺任務模組GoAPI
- SpringBoot與非同步任務、定時任務、郵件任務Spring Boot非同步
- Flowable啟動流程例項和查詢任務以及完成任務
- 張一鳴退出位元組跳動卸任多家位元組關聯公司職務
- 張一鳴退出位元組跳動,卸任多家位元組關聯公司職務
- JavaScript巨集任務和微任務JavaScript
- 軟通動力組建專業科技服務團
- 位元組跳動將徹底結束印度業務
- 微服務總體功能模組微服務
- 任務異常自動告警
- Docker中提交任務到Spark叢集DockerSpark
- 任務
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- 華瑞IT教育|2021校園籃球賽
- JavaScript的巨集任務與微任務JavaScript
- 任務系統之Jenkins子任務Jenkins
- Event Loop、 巨集任務和微任務OOP
- 華瑞IT校園籃球賽:熱血少年,球場爭鋒
- Hyperledger Fabric無排序組織以Raft協議啟動多個Orderer服務、TLS組織執行維護Orderer服務排序Raft協議TLS
- Spring按業務模組輸出日誌到不同的檔案Spring
- 微服務和組織該如何搭配?微服務
- 2018世界盃小組賽B組出線球隊和出局球隊分別是哪些?