哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

stm32mp1 Cortex M4開發(fā)篇7:窗口看門狗

華清遠(yuǎn)見工控 ? 2021-10-29 17:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前面:

本文章為《ARM Cortex-M4裸機開發(fā)篇》系列中的一篇,,全系列總計14篇。筆者使用的開發(fā)平臺為華清遠(yuǎn)見FS-MP1A開發(fā)板(STM32MP157開發(fā)板),Cortex-M4裸機開發(fā)篇除了講M4裸機開發(fā)外,還會講解通過M4控制資源擴展板上的各種傳感器執(zhí)行器模塊(包括空氣溫濕度傳感器LED燈、數(shù)碼管、蜂鳴器、震動馬達(dá)、按鍵中斷、風(fēng)扇等),本篇是M4控制資源擴展板中的一篇。

資源擴展板是FS-MP1A開發(fā)板的擴展模塊,主要包含了10余種助主流傳感器、執(zhí)行器件、總線控制器件,非常方便項目擴展用。可拓展開發(fā)智慧家庭、智能醫(yī)療、智能安防、工業(yè)控制、圖像識別、環(huán)境檢測等方向的10個左右綜合項目,華清遠(yuǎn)見開發(fā)板也將配套提供所有項目的說明文檔、實驗源碼、應(yīng)用程序等資料。

針對FS-MP1A開發(fā)板,除了Cortex-M4裸機開發(fā)篇外,還包括其他多系列教程,包括Cortex-A7開發(fā)篇、FreeRTOS篇、Linux基礎(chǔ)及應(yīng)用開發(fā)篇、Linux系統(tǒng)移植篇、Linux驅(qū)動開發(fā)篇、硬件設(shè)計篇、人工智能機器視覺篇、Qt應(yīng)用編程篇、Qt綜合項目實戰(zhàn)篇等。d=622457259672

1.資源擴展板介紹

1.1硬件介紹&資源擴展板可開發(fā)項目

poYBAGFn9z-AAMA3AAJtk6t7vns204.jpg

2.Cortex-M4 窗口看門狗

2.1實驗?zāi)康?/strong>

熟悉STM32CubeIDE工具軟件的使用。

掌握STM32CubeIDE軟件的基本設(shè)計流程和設(shè)計步驟,能夠使用工具進(jìn)行設(shè)計、編程、仿真調(diào)試。

學(xué)習(xí)窗口看門狗的使用方法,掌握如何利用STM32MP157A芯片的窗口看門狗復(fù)位程序。

2.2實驗環(huán)境

FS-MP1A開發(fā)平臺

ST-Link仿真器

STM32CubeIDE開發(fā)軟件

PC機 XP、Window7/10 (32/64bit)

串口調(diào)試工具

2.3實驗原理

看門狗其實就是一個定時器,從功能上說它可以讓微控制器在程序發(fā)生意外(程序進(jìn)入死循環(huán)或跑飛)的時候,能重新回復(fù)到系統(tǒng)剛上電狀態(tài),以保障系統(tǒng)出問題的時候可以重啟一次。說的簡單一點,看門狗就是能讓程序出問題時能重新啟動系統(tǒng)。

窗口看門狗的工作原理是一個遞減計數(shù)器不斷的往下遞減計數(shù),當(dāng)減到一個固定值 0x40 時還不喂狗的話,產(chǎn)生復(fù)位,這個值叫作窗口的下限,是固定的值,不能改變。另外窗口看門狗計數(shù)器的值在減到某一個數(shù)之前喂狗的話也會產(chǎn)生復(fù)位,這個值叫作窗口的上限,上限值由用戶獨立設(shè)置。

窗口看門狗計數(shù)器的值必須在上窗口和下窗口之間才可以喂狗,這就是窗口看門狗中窗口兩個字的含義。

poYBAGF7Rw-AEe8RAAB_s7Gm7nk188.jpg

WWDG功能框圖

窗口看門狗時鐘

窗口看門狗時鐘來自PCLK1,由RCC時鐘控制器啟動。

計數(shù)器時鐘:

計數(shù)器時鐘由 CK計時器時鐘經(jīng)過預(yù)分頻器分頻得到,分頻系數(shù)由配置寄存器 CFR 的位 8:7 WDGTB[1:0]配置,可以是[0,1,2,3],其中 CK計時器時鐘=PCLK1/4096,4096對應(yīng)于內(nèi)部分頻器的值。所以計數(shù)器的時鐘CNT_CK=PCLK1/4096/(2^WDGTB),這就可以算出計數(shù)器減一個數(shù)的時間 T= 1/CNT_CK =Tpclk1 * 4096 * (2^WDGTB)。

計數(shù)器:

窗口看門狗的計數(shù)器是一個遞減計數(shù)器,共有 7 位,其值存在控制寄存器 CR 的位 6:0,即 T[6:0],當(dāng) 7 個位全部為 1時是 0x7F,這個是最大值,當(dāng)遞減到 T6 位變成 0時,即從0x40 變?yōu)?x3F時候,會產(chǎn)生看門狗復(fù)位。這個值 0X40 是看門狗能夠遞減到的最小值,所以計數(shù)器的值只能是:0x40~0x7F之間,實際上用來計數(shù)的是 T[5:0]。當(dāng)遞減計數(shù)器遞減到 0x40 的時候,還不會馬上產(chǎn)生復(fù)位,如果使能了提前喚醒中斷:CFR 位 9 EWI 置 1,則產(chǎn)生提前喚醒中斷,如果真進(jìn)入了這個中斷的話,就說明程序肯定是出問題了,那么在中斷服務(wù)程序里面我們就需要做最重要的工作,比如保存重要數(shù)據(jù),或者報警等,這個中斷我們也叫它死前中斷。

窗口值:

我們知道窗口看門狗必須在計數(shù)器的值在一個范圍內(nèi)才可以喂狗,其中下窗口的值是

固定的 0x40,上窗口的值可以改變,具體由配置寄存器 CFR 的位 6:0 W[6:0]設(shè)置。其值必須大于 0x40,如果小于或者等于 0x40就是失去了窗口的價值,而且也不能大于計數(shù)器的值,所以必須得小于 0x7F。

窗口看門狗激活情況下,滿足以下條件會產(chǎn)生復(fù)位。

1.當(dāng)遞減計數(shù)器的值小于0x40時(即從0x40到0x3F)會產(chǎn)生復(fù)位。

2.當(dāng)計數(shù)器值大于窗口寄存器的值時,如果軟件重載計數(shù)器,則會產(chǎn)生復(fù)位。

poYBAGF7RxCACDupAABu19uUsho650.jpg

從上面的時序圖中可以看到,如果遞減計數(shù)器的值(T[6:0])大于窗口寄存器(W[6:0])的值,重載計數(shù)器會產(chǎn)生復(fù)位。當(dāng)遞減計時器的值小于0x40時,也會產(chǎn)生復(fù)位。所以只能在W[6:0] ~ 0x3F之間刷新,在窗口之外重載遞減計數(shù)器時復(fù)位。存儲在窗口寄存器(WWDG_CR)中的值必須介于0xFF和0xC0之間。開啟窗口看門狗中斷時,當(dāng)遞減計數(shù)器的值等于0x40時觸發(fā)中斷。

看門狗超時時間

pYYBAGF7Rw-AcsVOAAAgSt6Oylg669.jpg

WWDG時鐘是掛在APB1上的,本實驗配置PCLK1時鐘為64MHz,預(yù)分頻為8,T[5:0]最大為63

ms

poYBAGF7Rw-AQYYgAABHHiIygi8920.jpg

2.4實驗步驟

打開STM32CubeIDE->File->New->STM32 Project

poYBAGD1ME2AVPeTAACVnz-qkMk546.png

可以在左側(cè)搜索框內(nèi)輸入芯片型號STM32MP157A進(jìn)行搜索,選擇對應(yīng)芯片,點擊Next

poYBAGFmcj-ASM-mAAC8KlaJkAU786.jpg

填寫工程名,點擊Finsh

pYYBAGF7RxCALB5OAABYYhOwuAQ384.jpg

點擊Yes打開配置頁面

pYYBAGD1MFqAKmnWAAAp3TMlYLo989.png

配置WWDG1,勾選Cortex-M4,勾選Activated

配置WWDG計數(shù)器預(yù)分頻為8,窗口寄存器的值為90,遞減計數(shù)器刷新值為127

Early wakeup interrupt使能 Enable,開啟窗口看門狗中斷

pYYBAGF7RxCABOYIAADElFg6X18346.jpg

poYBAGF7RxCAGtbzAAAsGAfuDIs285.jpg

配置UART4,勾選Cortex-M4,Mode選擇Asynchronous,搜索框搜索PB2、PG11,分別配置為UART4_RX、UART4_TX

poYBAGF7RxCAJ4b8AADMv_hNViE303.jpg

默認(rèn)時鐘配置64MHz

pYYBAGF7RxCABF03AADEmtaJIAc131.jpg

在Code Generator處選擇為每個外設(shè)生成單獨的C和H文件,這樣設(shè)置方便閱讀代碼

poYBAGD1MGmAams0AACpGOkAn0s579.png

完成以上設(shè)置后,Ctrl+S保存,會提示是否需要生成代碼,選擇Yes即可自動生成代碼。系統(tǒng)會自動生成System Clock代碼

poYBAGD1MG2ADAi6AAAgBCPP1k8477.png

可以在左側(cè)工程文件夾找到WDT_CM4子工程,打開main.c

添加窗口看門狗中斷回調(diào)函數(shù),串口重定向函數(shù)

123456789 void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg){ HAL_WWDG_Refresh(hwwdg);}int __io_putchar(int ch){ HAL_UART_Transmit(&huart4, (uint8_t *)&ch, 1, 0xFFFF); return ch;}

在main函數(shù)中添加打印語句,實現(xiàn)程序運行正常,不斷打印信息

pYYBAGF7RxGAc6U8AACoHXqnIf0772.jpg

上述為新建工程配置過程,可參考12.3.2章節(jié)進(jìn)行導(dǎo)入已有工程,工程存放路徑【華清遠(yuǎn)見-FS-MP1A開發(fā)資料\02-程序源碼\ARM體系結(jié)構(gòu)與接口技術(shù)\Cortex-M4\6_WDT】

配置完成或?qū)牍こ毯筮M(jìn)行程序下載,具體步驟參考12.3.3節(jié)進(jìn)行開發(fā)板連接,程序編譯、下載

2.5實驗現(xiàn)象

連接串口線,打開串口調(diào)試助手可以看到

poYBAGF7RxGAE0baAACyD2gf7kw914.jpg

在窗口看門狗中斷回調(diào)函數(shù)中注釋掉HAL_WWDG_Refresh(hwwdg)后,不刷新計數(shù)器。由于不刷新計數(shù)器,看門狗每33ms復(fù)位重啟一次,重新編譯下載后串口輸出如下

poYBAGF7RxGAXSJyAAC-LvOFzrs337.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6078

    文章

    45565

    瀏覽量

    673145
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9582

    瀏覽量

    393411
  • 嵌入式
    +關(guān)注

    關(guān)注

    5208

    文章

    20620

    瀏覽量

    336651
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11806

    瀏覽量

    219482
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6397

    瀏覽量

    120401
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SGM858xQ汽車窗口看門狗定時器:設(shè)計與應(yīng)用深度解析

    SGM858xQ汽車窗口看門狗定時器:設(shè)計與應(yīng)用深度解析 在汽車電子系統(tǒng)中,可靠的監(jiān)控和復(fù)位機制對于確保微控制器(MCU)的穩(wěn)定運行至關(guān)重要。SG Micro Corp推出的SGM858xQ汽車窗口
    的頭像 發(fā)表于 03-24 10:55 ?175次閱讀

    【瑞薩RA × Zephyr評測】多線程和看門狗

    本文章旨在評估使用 Zephyr RTOS 在 Renesas FPB-RA6E2 開發(fā)板上實現(xiàn)多線程調(diào)度與硬件看門狗功能的應(yīng)用。評估內(nèi)容包括任務(wù)調(diào)度、看門狗初始化流程、主程序邏輯的詳細(xì)解析,以及實驗現(xiàn)象與數(shù)據(jù)分析。
    的頭像 發(fā)表于 01-10 10:23 ?2634次閱讀
    【瑞薩RA × Zephyr評測】多線程和<b class='flag-5'>看門狗</b>

    什么是ADC模擬看門狗?

    時起作用。設(shè)置控制寄存器 ADC_CR1 的 WDTALL 位域為 1,使能模擬看門狗,通過 ADC_CR1 寄存器的 WDTCH 位域使能指定通道的模擬
    發(fā)表于 12-12 06:15

    IWDT窗口看門狗的配置

    :配置 IWDT_ARR,配置看門狗的重載值; 步驟 6:配置 IWDT_WINR,配置窗口大小,注意 IWDT_WINR 必須小于 IWDT_ARR 重載值; 步驟 7:等待 IWDT_SR.ARRF
    發(fā)表于 12-10 06:10

    芯源MCU看門狗設(shè)置過程

    更新完成; 步驟7:向IWDT_KR 寄存器寫入0xAAAA,加載ARR 到IWDT 計數(shù)器。 2 配置IWDT 為窗口看門狗 步驟1:設(shè)置SYSCTRL_APBEN
    發(fā)表于 12-03 06:33

    中科芯CKS32F107XX系列MCU的獨立看門狗介紹

    中科芯CKS32F107xx系列產(chǎn)品內(nèi)部提供兩個看門狗定時器單元,獨立型看門狗IWDG(Independent Watchdog)和窗口看門狗WWDG(Window Watchdog
    的頭像 發(fā)表于 11-28 14:51 ?3991次閱讀
    中科芯CKS32F107XX系列MCU的獨立<b class='flag-5'>看門狗</b>介紹

    中科芯CKS32F107XX系列MCU的窗口看門狗介紹

    中科芯CKS32F107xx系列產(chǎn)品內(nèi)部提供兩個看門狗定時器單元,獨立型看門狗IWDG(Independent Watchdog)和窗口看門狗WWDG(Window Watchdog
    的頭像 發(fā)表于 11-28 14:48 ?4291次閱讀
    中科芯CKS32F107XX系列MCU的<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>介紹

    “喂狗”的藝術(shù):看門狗不叫,才是系統(tǒng)好

    看門狗選哪只好呢? 中間那只看起來不錯。 咳咳搞錯了,自動化項目中說的看門狗是PLC的看門狗,那這個有什么用呢?難道真的是看大門的?
    的頭像 發(fā)表于 11-25 10:50 ?407次閱讀
    “喂狗”的藝術(shù):<b class='flag-5'>看門狗</b>不叫,才是系統(tǒng)好

    既然有獨立看門狗了,為啥還要窗口看門狗(WWDT),窗口看門狗的特色是什么?

    既然有獨立看門狗了,為啥還要窗口看門狗(WWDT),窗口看門狗的特色是什么?
    發(fā)表于 11-21 06:42

    看門狗定時器、復(fù)位源、異常處理機制科普

    在嵌入式開發(fā)中,系統(tǒng)一旦“跑飛”,工程師最怕的不是bug,而是程序卡死無人知。這時,芯片自身的自我保護機制就至關(guān)重要。看門狗、復(fù)位源和異常處理機制,是保證系統(tǒng)可靠性的三大基石。本文帶你梳理清楚它們
    的頭像 發(fā)表于 11-17 10:53 ?1632次閱讀
    <b class='flag-5'>看門狗</b>定時器、復(fù)位源、異常處理機制科普

    小安派BW21-CBV-Kit入門教程之看門狗簡介

    這是一個簡單的看門狗定時器(WDT)示例,演示了看門狗 API 的用法。 有關(guān)看門狗的定義和工作原理,請參閱以下信息。
    的頭像 發(fā)表于 11-13 17:22 ?5191次閱讀
    小安派BW21-CBV-Kit入門教程之<b class='flag-5'>看門狗</b>簡介

    CW32配置IWDT為窗口看門狗的步驟

    IWDT_ARR,配置看門狗的重載值; 步驟 6:配置 IWDT_WINR,配置窗口大小,注意 IWDT_WINR 必須小于 IWDT_ARR 重載值; 步驟 7:等待 IWDT_SR.ARRF
    發(fā)表于 11-13 06:53

    德州儀器TPS3436-Q1汽車級窗口看門狗定時器技術(shù)解析

    Texas Instruments TPS3436-Q1精密窗口看門狗定時器是一款超低功耗(250nA典型值)器件,提供可編程窗口看門狗定時
    的頭像 發(fā)表于 08-18 14:54 ?1910次閱讀
    德州儀器TPS3436-Q<b class='flag-5'>1</b>汽車級<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>定時器技術(shù)解析

    STM32L433單片機如何在調(diào)試的時候關(guān)閉看門狗?

    調(diào)試單步時,獨立看門狗iwdg暫停 The independent watchdog counter clock is stopped when the core is halted__HAL_DBGMCU_FREEZE_WWDG();//窗口
    發(fā)表于 07-11 07:15

    第二十四章 WWDG——窗口看門狗

    W55MH32的窗口看門狗7位遞減計數(shù)器,有上下窗口值,時鐘來自PCLK1用于監(jiān)測軟件故障,代碼演示了其配置、中斷測試與復(fù)位測試。
    的頭像 發(fā)表于 06-20 14:00 ?1364次閱讀
    第二十四章 WWDG——<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>
    阜新市| 维西| 西乌| 康保县| 景东| 子洲县| 清新县| 新化县| 上虞市| 苏尼特右旗| 乐至县| 龙川县| 北宁市| 林周县| 肥城市| 宣武区| 扶绥县| 勃利县| 普兰县| 太湖县| 海晏县| 霞浦县| 禄丰县| 四平市| 安宁市| 平陆县| 台山市| 沧源| 太湖县| 略阳县| 新昌县| 子洲县| 准格尔旗| 凤山县| 临城县| 邹平县| 麻江县| 嘉荫县| 新郑市| 壤塘县| 武功县|