娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

stm32CubeMx..........多數嵌入式編程人員可能已程習慣使用stm32的庫開發方式來實現功能,庫版本v3.5.0本人之前也一直使用,開始使用stm32CubeMx開發方式,發現和原先庫開發方式與很多不同,實現方法也有區別。本文旨在將個人在stm32CubeMx開發方式中總結的一些經驗寫出來,供大家參考。


對于看門狗而言,stm32中有兩種,分為獨立看門狗(IWDG)和窗口看門狗(WWDG),在此大概介紹下兩條警犬,本文重點介紹窗口看門狗。


獨立看門狗:獨立看門狗(IWDG)由專用的40kHz的低速時鐘驅動,即使主時鐘發生故障它也仍然有效。IWDG最適合應用于那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合。


窗口看門狗:窗口看門狗通常被用來監測由外部干擾或不可預見的邏輯條件造成的應用程序背離正常的運行序列而產生的軟件故障。通俗說就是會產生兩個復位。復位條件:(1)當計數器的數值從0x40減到0x3F;(2)當刷新看門狗時計數器的數值大于窗口上限值時。滿足任何一條都可以產生復位信號。通常情況下設置窗口上限值為0x7F,下限值默認為0x40,計數器向下數到0x40就會產生中斷,下個910us后變為0x3F就會復位系統。也就是喂狗操作不能早喂,即大于窗口值時會發生復位;喂的晚了,即計數器的數值從0x40減到0x3F時沒有及時喂狗,也會產生復位。


實驗說明:板子型號為stm32F103VET6, 每次喂狗并通過串口打印出來

下面來看下在stm32CubeMx中窗口看門狗的實現。

1、在stm32cubemx中設值

我們設置分頻系數為8;窗口值為0x5f;計數值為0x7f;其中窗口默認下限值為0x40。并打開中斷,打開中斷后,會置1中斷位,如圖:

(2)寫WWDG初始化函數

void WWDG_Init(void)
{
__WWDG_CLK_ENABLE(); //使能WWDG時鐘
   
MX_WWDG_Init(); //調用系統初始化函數,也就是我們在圖形界面設置好值后,會將我們剛才設置的值轉化為代碼。在本函數里直接調用即可


__HAL_WWDG_CLEAR_FLAG(&hwwdg, WWDG_FLAG_EWIF);  // 開啟中斷前,先清除中斷標志位

HAL_WWDG_Start_IT(&hwwdg);   //設置中斷標志位,并開啟中斷,

}

(3)我們再來開下在中斷函數,cubemx的中斷函數處理和庫開發方式還是有區別的。

/**
* @brief This function handles Window watchdog interrupt.
*/
void WWDG_IRQHandler(void)
{
  /* USER CODE BEGIN WWDG_IRQn 0 */


  /* USER CODE END WWDG_IRQn 0 */
  HAL_WWDG_IRQHandler(&hwwdg);
  /* USER CODE BEGIN WWDG_IRQn 1 */


  /* USER CODE END WWDG_IRQn 1 */
}

我們看到在它的中斷函數里調用了一個函數, HAL_WWDG_IRQHandler(&hwwdg); 我們再來看這個函數,在該函數里出現了一個在cubemx方式里獨有的,回調函數,當中斷開啟,并且中斷標志位滿足后將會調用該函數,而我們的操作將會在這里實現。


void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg)

  /* Check if Early Wakeup Interrupt is enable */
  if(__HAL_WWDG_GET_IT_SOURCE(hwwdg, WWDG_IT_EWI) != RESET)
  {
    /* Wheck if WWDG Early Wakeup Interrupt occurred */
  if(__HAL_WWDG_GET_FLAG(hwwdg, WWDG_FLAG_EWIF) != RESET)
  {
    /* Early Wakeup callback */ 
    HAL_WWDG_WakeupCallback(hwwdg);
    
    /* Change WWDG peripheral state */
    hwwdg->State = HAL_WWDG_STATE_READY; 
    
      /* Clear the WWDG Early Wakeup flag */
    __HAL_WWDG_CLEAR_FLAG(hwwdg, WWDG_FLAG_EWIF);
    
    /* Process Unlocked */
    __HAL_UNLOCK(hwwdg);
  }

}

(4)下面我們來討論看門狗的喂狗時間,很容易計算在stm32f103系列里窗口看門狗的最大喂狗時間也就58ms,在一些程序里我們沒必要這么密集的去喂狗。那么如何增大喂狗時間呢。搜集了網上的一些方法后,本人根據具體事例實現了一個增大看門狗喂狗時間的方法:就是在中斷函數中再做一個額外計數器,如果計數器沒有達到設定值,就就行喂狗操作,同時使設定值加1,當計數器達到設定值時,就不加載喂狗定時器初值,這時看門狗定時器就會從從0x40減到0x3F產生系統復位。使用這個方法可以將定時時間拓展到 58ms*額外計數器設定值,定個幾十秒都不是問題。 當達到計數值后如果我們清零計數值,那么看門狗系統就會復位,所以我們只要在主函數里定期的將該計數值清零,也就是變相的增大了喂狗時間。下面具體看事例:

每次產生看門狗中斷都會調用回調函數,我在回調函數里做如下操作:

/*****************************看門狗回調函數********************************/
void HAL_WWDG_WakeupCallback(WWDG_HandleTypeDef* hwwdg)
{
if(time <=50)
{
HAL_WWDG_Refresh(hwwdg, WWDG_CNT); //喂狗函數
printf("喂狗\r\n");    //每喂一次狗,打印一次,無實際作用
time++;
}
}


/**************************main函數中部分函數********************************/

  while (1)
  {
if(time > 50)
{
time = 0;
printf("time清零 \r\n");
}
  }


我設置看門狗最大喂狗時間為58ms,那么計數50次,大概是2.9s時間,也就是我在主函數中必須在2.9s內,只要對計數器清零,系統就不會復位了。相應的可以把計數值設置更大,這就根據個人需要了。這樣是不是變相的增大喂狗時間了。

下面是我的串口打印效果:



大家看一下是不是每喂一次狗就會打印一個“喂狗”,同時在11點55分20秒有一次time清零,到11點55分23秒有一次time清零,是不是間隔大概3秒了。



好了,本人也是剛開始使用stm32CubeMx開發,如果內容中有問題,希望指出來,共同進步


關鍵字:stm32CubeMx  窗口看門狗 引用地址:stm32CubeMx中實現窗口看門狗功能

上一篇:STM32看門狗 IWDG WWDG
下一篇:如何使用Stm32CubeMX和LL庫實現窗口看門狗

推薦閱讀

? ??臺灣觸控芯片廠義隆電8月業績表現亮麗,營收達新臺幣8.19億元,較7月再增加3.9%,連續兩個月業績創歷史新高紀錄。義隆電表現亮眼,將涉足人工智能義隆電為臺灣IC設計大廠,產品主要包含觸控IC、觸控筆IC,同時也積極布局TDDI、AI等相關領域產品。今年以來,來自觸控IC營收占比約六至七成,當中包含觸摸板及觸控屏幕,另外,今年上半年指紋與生物識...
歷史事件回顧;談談怎樣看待空調能效。 董小姐實名舉報奧克斯能效造假事件格力實名舉報 在今年的6月10日,也就是“618購物節“前夕,格力在官微上發布了一封實名舉報信,直指奧克斯空調生產的8款產品(KFR-25GW/NFW+3、KFR-35GW/NFI19+3、KFR-25GW/ZC+2、KFR-35GW/HFY+3、KFR-35GW/NFW+3、KFR-25GW/NFI19+3、KF-26GW/NFA1+3、KFR-35GW/ZC+2)能效造假,其...
華為在9月3日召開了IFA 2020大會,不過業界期盼的麒麟9000芯片并沒有出現。據搜狐科技報道,產業鏈最新消息稱,華為之前就已經確定推遲5nm麒麟芯片的發布,目前正在敦促臺積電在9月14日之前交付相應的訂單。據悉,麒麟9000采用臺積電5nm工藝生產,是全球第一顆5nm制程手機芯片,研發進步快于高通和蘋果。此前臺媒消息稱,為了應對美國禁令,華為先前已大...
快充從字面的意思上來看,指的電池在饋電的狀態下面,能夠快速地達到補電的效果,快充應用最多的就是手機,快充技術的誕生在一定的程度上面緩解了電量不夠的焦慮感帶來的體驗不佳,隨著電動汽車的誕生,續航的焦慮問題再度被提起,補能焦慮也成了很多新能源汽車車主的痛,為了解決這一情況,一些車企把手機上面的快充搬到汽車上,更有甚者宣稱充電5分鐘續...

史海拾趣

問答坊 | AI 解惑

三相變壓器如何把Y/Y-12聯接組改成Y/Y-6聯接組以及把Y/ -11改為Y/ -5聯接組

問一下如何把Y/Y-12聯接組改成Y/Y-6聯接組以及把Y/ -11改為Y/ -5聯接組…

查看全部問答∨

詳解嵌入式系統

目前,在嵌入式系統應用領域中,不少人對什么是嵌入式系統不甚了解。有些人搞了十多年的單片機應用,不知道單片機就是一個最典型的嵌入式系統;也有些人在解釋什么是嵌入式系統時,不是從定義出發,而是列舉了嵌入式系統的一些特點,往往不知所云。 ...…

查看全部問答∨

(回復有分)在arm和x86平臺(模擬器)下的編譯問題

在網上下了個游戲的代碼,在arm的sdk下編譯好好的,到了x86平臺(模擬器)的sdk編譯就出一大堆問題了。首先,就是說頭文件沒包含,把設置的目錄都加上去,錯誤就更多了。而在arm下就沒問題。…

查看全部問答∨

GetMessage為什么得不到任何消息

我創建了一個線程    while(g_flag) {         result = GetMessage(&Message, 0, 0, 0);         if(result == 1)         {       &nb ...…

查看全部問答∨

高薪急聘硬件設計工程師兼職人員(北京)

職位介紹 硬件設計工程師 本公司正在做PDA項目的開發,使用的是ARM系統。已經完成第一版產品的開發和小批量生產。 現欲招聘一名兼職硬件工程師,負責后續的生產以及后續產品的設計,調試和生產工作。 PDA的硬件組成如下:單片機+ARM協處理器+K ...…

查看全部問答∨

懸賞分析

能完整分析附件電路圖請和我聯系,有興趣的可以賺些外快。…

查看全部問答∨

PIC18F2525和PIC18F2550有什么區別?

因學習PIC單片機需要,想弄個下載器,網上查了不少資料,有很多個版本的下載器,有個PICKIT2的覺得不錯,比較簡單,支持的芯片也比較多!因此想自己做一個! 目前手上有一片PIC18F2525,但是,做的這個下載器,要用的是PIC18F2550,不知道這兩者有 ...…

查看全部問答∨

【曬經典】家電之臺燈

本帖最后由 dontium 于 2015-1-23 13:23 編輯 1.USB臺燈 USB臺燈電路圖如下圖所示.為避免可能的電磁輻射,電路的電源采用電容限流,再送到整流電路,給出控制電路所需的5V直流工作電壓。在電腦關斷不用時.即使控制電路有交流電源存在,由于IC2的 ...…

查看全部問答∨

簡單的延時為什么沒有哦效果呢?

#include <msp430x14x.h> void delay(unsigned char i) {                                      while(i--) ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 三原县| 泰州市| 濮阳市| 姚安县| 中宁县| 社会| 永安市| 桐梓县| 永昌县| 郸城县| 茶陵县| 三穗县| 都兰县| 玉田县| 密云县| 灵寿县| 阿合奇县| 安平县| 盐山县| 平乡县| 伊金霍洛旗| 琼中| 阿合奇县| 巫山县| 洪江市| 吉安县| 句容市| 福海县| 都匀市| 阳新县| 龙江县| 长治县| 武威市| 临高县| 永定县| 河津市| 永善县| 墨玉县| 新田县| 股票| 济源市|