日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

RT-Thread Nano入門(mén):獨(dú)立看門(mén)狗(IWDT)

CHANBAEK ? 來(lái)源:MrZhou的技術(shù)棧 ? 作者: zzx_mcu ? 2023-11-22 11:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文主要介紹怎么用RT-Thread Nano實(shí)現(xiàn)獨(dú)立看門(mén)狗IWDT驅(qū)動(dòng),創(chuàng)建一個(gè)喂狗線(xiàn)程,實(shí)現(xiàn)定時(shí)喂狗功能。

一、準(zhǔn)備工作

1.硬件準(zhǔn)備:

STM32F103RCT6(本人使用正點(diǎn)原子的MINI板)

ST-LINK

USB轉(zhuǎn)TTL模塊

2.軟件準(zhǔn)備:

KEIL5 MDK

STM32CubeMX

二、使用STM32CubeMX生成MDK工程

使用STM32CubeMX創(chuàng)建STM32F103RBT6的對(duì)應(yīng)工程,配置時(shí)鐘源,使能GPIO、UART、IWDT,配置時(shí)鐘樹(shù)。

配置預(yù)覽效果,配置PA8引腳為推挽輸出,用于LED燈閃爍。

圖片

STM32F103RBT6的最大主頻為72M,配置PLL選擇外部時(shí)鐘。

圖片

生成KEIL MDK工程。

圖片

二、添加RT-Thread Nano到工程

打開(kāi)MDK工程,添加RT-Thread Nano組件,具體可參考官方《基于Keil MDK移植RT-Thread Nano》文檔,鏈接為https://www.rt-thread.org/document/site/tutorial/nano/nano-port-keil/an0039-nano-port-keil/。

主要分為以下幾個(gè)步驟:

  1. 注釋掉STM32CubeMX生成的PendSV,HardFault,SysTick。
  2. 將main.c中的板級(jí)初始化函數(shù),系統(tǒng)時(shí)鐘配置函數(shù)移到board.c中,替換RTT的配置。
  3. 移植FinSH,實(shí)現(xiàn)rt_hw_console_output()函數(shù)。
void rt_hw_console_output(const char *str)
{
   /* empty console output */
   rt_size_t i = 0, size = 0;
   char a = 'r';

//   __HAL_UNLOCK(&huart1);
   rt_enter_critical();
   size = rt_strlen(str);
   for (i = 0; i < size; i++)
    {
       if (*(str + i) == 'n')
       {
           HAL_UART_Transmit(&huart1, (uint8_t *)&a, 1, 1);
       }
       HAL_UART_Transmit(&huart1, (uint8_t *)(str + i), 1, 1);
    }
       rt_exit_critical();

}

三、編寫(xiě)代碼

主要實(shí)現(xiàn)兩個(gè)功能,LED閃爍和IWDG喂狗。

  1. 在main函數(shù)中創(chuàng)建兩個(gè)線(xiàn)程。
tid1 = rt_thread_create("iwdg",
                        iwdg_thread_entry,
                        RT_NULL,
                        THREAD_STACK_SIZE,
                        THREAD_PRIORITY,
                        THREAD_TIMESLICE);
if(tid1!= RT_NULL)
{
     rt_thread_startup(tid1);
}


       tid2= rt_thread_create("led",
                              led_thread_entry,
                              RT_NULL,
                              THREAD_STACK_SIZE,
                              THREAD_PRIORITY- 1,
                              THREAD_TIMESLICE);

if(tid2!= RT_NULL)
{
    rt_thread_startup(tid2);
}

2.LED線(xiàn)程

static void led_thread_entry(void *param)
{
       MX_GPIO_Init();
       while(1)
       {
              HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8, GPIO_PIN_RESET);
              rt_thread_mdelay(500);
              HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8, GPIO_PIN_SET);
              rt_thread_mdelay(500);
//            rt_kprintf("hello,ledn");
       }

}

3.IWDG線(xiàn)程

static void iwdg_thread_entry(void *param)
{
       MX_IWDG_Init();
       while(1)
       {
              HAL_IWDG_Refresh(&hiwdg);
              rt_kprintf("feediwdgn");
              rt_thread_mdelay(1000);
       }
}

注意計(jì)算iwdg的溢出時(shí)間,本文設(shè)置的溢出時(shí)間約為3.276s,預(yù)分頻值為32,看門(mén)狗時(shí)鐘為40kHz。

計(jì)算看門(mén)狗溢出時(shí)間:

1.方式一

分頻后的頻率:IWDG時(shí)鐘/分頻值 = 40KHz/32= 1.25KHz

溢出時(shí)間:設(shè)置的裝填值/分頻后的頻率 = 4095/1.25KHz = 3276ms=3.276s

2.方式二

用戶(hù)手冊(cè)的公式給定公式,看門(mén)狗溢出時(shí)間:

Tout=((4×2^prer)×rlr)/40KHz。

其中Tout 為看門(mén)狗溢出時(shí)間(單位為ms),prer為看門(mén)狗時(shí)鐘預(yù)分頻值(IWDG_PR值),范圍為0~7;rlr 為看門(mén)狗的重裝載值(IWDG_RLR 的值)。

我們?cè)赟TM32CubeMX中設(shè)置分頻值為32,相當(dāng)(4×2^prer=32),prer = 3,rlr = 4095,故有

Tout=((4×2^prer) ×rlr) /40KHz =((4×2^3) ×4095) /40KHz = 3276ms。

其實(shí)也很好理解,看門(mén)狗定時(shí)器是一個(gè)遞減的定時(shí)器,從給定的計(jì)算值遞減到0時(shí)就會(huì)產(chǎn)生看門(mén)狗復(fù)位(如果不喂狗),我們?cè)O(shè)置的計(jì)數(shù)值4095,看門(mén)狗計(jì)一次數(shù)的時(shí)間為32/40kHz,故總時(shí)間就等于計(jì)數(shù)值*一次計(jì)數(shù)的時(shí)間。

四、下載驗(yàn)證

現(xiàn)象:

1.看門(mén)狗每1s喂一次狗。

圖片

2.led燈以1Hz的頻率閃爍。

圖片

至此,RTT中的獨(dú)立看門(mén)狗就講解結(jié)束。

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

    關(guān)注

    4

    文章

    211

    瀏覽量

    33733
  • 線(xiàn)程
    +關(guān)注

    關(guān)注

    0

    文章

    510

    瀏覽量

    20874
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1644

    瀏覽量

    45268
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    290

    瀏覽量

    17488
  • 獨(dú)立看門(mén)狗

    關(guān)注

    0

    文章

    26

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    獨(dú)立看門(mén)狗(IWDG)的基礎(chǔ)知識(shí)

      STM32F10xxx系列內(nèi)置兩個(gè)看門(mén)狗(獨(dú)立看門(mén)狗和窗口看門(mén)狗),提供了更高的安全性、時(shí)間的精確性和使用的靈活性。兩個(gè)看門(mén)狗設(shè)備(
    發(fā)表于 10-19 17:10 ?5322次閱讀
    <b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>(IWDG)的基礎(chǔ)知識(shí)

    STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗是什么

    在早期的MCU中是沒(méi)有看門(mén)狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門(mén)狗的功能。但是目前看門(mén)狗發(fā)展到今天基本上分為兩大類(lèi):獨(dú)立
    的頭像 發(fā)表于 02-20 17:47 ?4827次閱讀
    STM32中的<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>和窗口<b class='flag-5'>看門(mén)狗</b>是什么

    IWDT獨(dú)立看門(mén)狗的配置

    _KR 寄存器寫(xiě)入 0x5555,解除 IWDT 寄存器鎖定功能; 步驟 4: 配置 IWDT_CR,配置看門(mén)狗計(jì)數(shù)時(shí)鐘與 RC10K 振蕩器的預(yù)分頻值、溢出后動(dòng)作、深度休眠模式下是否自動(dòng)暫停; 步驟 5
    發(fā)表于 12-05 06:18

    怎樣去搭建一種基于RT-Thread實(shí)時(shí)操作系統(tǒng)的STM32開(kāi)發(fā)環(huán)境?

    怎樣去搭建一種基于RT-Thread實(shí)時(shí)操作系統(tǒng)的STM32開(kāi)發(fā)環(huán)境?怎樣去搭建一種IWDT獨(dú)立看門(mén)狗的環(huán)境?如何去編寫(xiě)IWDT
    發(fā)表于 07-27 07:19

    實(shí)現(xiàn)獨(dú)立看門(mén)狗IWDT驅(qū)動(dòng)

    實(shí)現(xiàn)獨(dú)立看門(mén)狗IWDT驅(qū)動(dòng),創(chuàng)建喂狗線(xiàn)程,實(shí)現(xiàn)喂狗功能工程環(huán)境:stm32cubeIDE開(kāi)發(fā)板:STM32 F103 ZET6最小系統(tǒng)仿真器:st-link V2cubeIDE 基于eclipse
    發(fā)表于 08-03 06:30

    stm32看門(mén)狗時(shí)間計(jì)算 獨(dú)立看門(mén)狗和窗口看門(mén)狗的特性是什么

    本文為您講解STM看門(mén)狗時(shí)間計(jì)算(時(shí)限)與頻率計(jì)算,獨(dú)立看門(mén)狗和窗口看門(mén)狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?9434次閱讀

    什么是stm32看門(mén)狗獨(dú)立看門(mén)狗和窗口看門(mén)狗工作原理解析

    stm32有兩個(gè)看門(mén)狗,獨(dú)立看門(mén)狗和窗口看門(mén)狗,其實(shí)兩者的功能是類(lèi)似的,只是喂狗的限制時(shí)間不同。 獨(dú)立
    的頭像 發(fā)表于 11-06 11:48 ?2.9w次閱讀
    什么是stm32<b class='flag-5'>看門(mén)狗</b>?<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>和窗口<b class='flag-5'>看門(mén)狗</b>工作原理解析

    STM32看門(mén)狗配置(獨(dú)立看門(mén)狗IWDG和窗口看門(mén)狗WWDG)

    stm32自帶兩個(gè)看門(mén)狗模塊,獨(dú)立看門(mén)狗IWDG和窗口看門(mén)狗WWDG。看門(mén)狗主要作用是可用來(lái)檢測(cè)和解決由軟件錯(cuò)誤引起的故障;當(dāng)計(jì)數(shù)器達(dá)到給定
    發(fā)表于 11-09 17:17 ?8919次閱讀
    STM32<b class='flag-5'>看門(mén)狗</b>配置(<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>IWDG和窗口<b class='flag-5'>看門(mén)狗</b>WWDG)

    MCU獨(dú)立看門(mén)狗與窗口看門(mén)狗的區(qū)別

    早期的MCU沒(méi)有看門(mén)狗,就容易引起有些產(chǎn)品死機(jī)了不能重啟工作。為了避免這個(gè)問(wèn)題,后期的MCU在內(nèi)部集成了看門(mén)狗的功能。為了滿(mǎn)足更多使用場(chǎng)景,現(xiàn)在很多MCU都集成了兩個(gè)看門(mén)狗獨(dú)立
    發(fā)表于 10-28 20:06 ?8次下載
    MCU<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>與窗口<b class='flag-5'>看門(mén)狗</b>的區(qū)別

    RT-Thread Nano入門(mén)學(xué)習(xí)筆記

    RT-Thread Nano入門(mén)學(xué)習(xí)筆記
    發(fā)表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b><b class='flag-5'>入門(mén)</b>學(xué)習(xí)筆記

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thread Nano 已集成在 Keil
    發(fā)表于 01-26 17:04 ?17次下載
    基于 Keil MDK 移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    STM32:獨(dú)立看門(mén)狗、窗口看門(mén)狗的配置

    STM32單片機(jī)的看門(mén)狗獨(dú)立看門(mén)狗和窗口看門(mén)狗之分,這兩者的工作原理卻完全不同。
    發(fā)表于 02-08 16:15 ?18次下載
    STM32:<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>、窗口<b class='flag-5'>看門(mén)狗</b>的配置

    STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗

    一、前言 在早期的MCU中是沒(méi)有看門(mén)狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門(mén)狗的功能。但是目前看門(mén)狗發(fā)展到今天基本上分為兩大類(lèi):獨(dú)立
    的頭像 發(fā)表于 12-22 16:58 ?3388次閱讀

    STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗

    在早期的MCU中是沒(méi)有看門(mén)狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門(mén)狗的功能。但是目前看門(mén)狗發(fā)展到今天基本上分為兩大類(lèi):獨(dú)立
    的頭像 發(fā)表于 01-30 14:38 ?2739次閱讀
    STM32中的<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b>和窗口<b class='flag-5'>看門(mén)狗</b>

    瑞薩e2studio----獨(dú)立看門(mén)狗IWDT

    概述本篇文章主要介紹如何使用e2studio對(duì)瑞薩進(jìn)行獨(dú)立看門(mén)狗IWDT配置,并且配置RTC時(shí)鐘產(chǎn)生1s的周期中斷,通過(guò)串口打印查看獨(dú)立看門(mén)狗
    的頭像 發(fā)表于 11-26 17:18 ?2700次閱讀
    瑞薩e2studio----<b class='flag-5'>獨(dú)立</b><b class='flag-5'>看門(mén)狗</b><b class='flag-5'>IWDT</b>
    樟树市| 泗阳县| 平南县| 日照市| 美姑县| 咸丰县| 哈密市| 宜阳县| 云浮市| 安阳市| 砀山县| 阿尔山市| 逊克县| 霍州市| 云林县| 宁河县| 博白县| 通州区| 工布江达县| 仁化县| 合肥市| 阿坝县| 苏尼特右旗| 乃东县| 高邮市| 南雄市| 鲁山县| 连江县| 云和县| 克东县| 东乡县| 涟源市| 监利县| 剑川县| 霍邱县| 手游| 黔江区| 年辖:市辖区| 共和县| 思茅市| 青田县|