chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何實現(xiàn)stm32單片機每次接上電源就進行一次重啟動?

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-09-14 14:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如何實現(xiàn)stm32單片機每次接上電源就進行一次重啟動?

嵌入式系統(tǒng)中,單片機的重啟有時是十分必要的,它可以解決一些系統(tǒng)啟動過程中的問題、恢復系統(tǒng)的正常運行、使系統(tǒng)更加穩(wěn)定等。

然而,有時候我們需要每次接上電源就進行一次重啟,也就是實現(xiàn)系統(tǒng)的自動重啟。本文將給出一個思路,來實現(xiàn)stm32單片機每次接上電源就進行一次重啟動。

一、背景知識

嵌入式系統(tǒng)中,有兩類重啟,分別是軟重啟和硬重啟。

1.1 軟重啟

軟重啟是指通過程序控制單片機重新開始執(zhí)行,實現(xiàn)系統(tǒng)的重啟。在stm32單片機中,一般采用如下代碼進行軟重啟:

```c
NVIC_SystemReset(); //調用此函數(shù)進行軟重啟
```

1.2 硬重啟

硬重啟是指通過硬件控制單片機重新開始執(zhí)行,實現(xiàn)系統(tǒng)的重啟。在stm32單片機中,硬重啟通常是通過復位按鍵進行操作的。復位按鍵的功能是將單片機的復位引腳拉低,在一定時間后再拉高,從而實現(xiàn)單片機的重啟。

二、實現(xiàn)思路

了解了軟重啟和硬重啟之后,我們來思考如何實現(xiàn)stm32單片機每次接上電源就進行一次重啟動。下面是一種實現(xiàn)思路:

2.1 硬重啟

由于我們需要每次接上電源就進行一次重啟,所以需要采用硬重啟的方式。同時,我們還需要在重啟之前有一個短暫的延時,以確保系統(tǒng)已經穩(wěn)定運行。

在stm32單片機中,硬重啟通常是通過復位按鍵進行操作的。我們可以在單片機的復位引腳和復位按鍵之間串聯(lián)一個帶有一定延時的電容,使得單片機在接電源,電容充電過程中,復位引腳的電平保持低電平,從而實現(xiàn)單片機的重啟。

2.2 延時

在實際應用中,需要根據(jù)系統(tǒng)的不同運行環(huán)境和實際需求來設置延時的時間。由于系統(tǒng)重啟時,CPU還沒有開始執(zhí)行代碼,也就是沒有時鐘信號產生,所以我們需要在復位電容電壓升高之前就將系統(tǒng)時鐘啟動,以保證系統(tǒng)能夠穩(wěn)定運行。在stm32單片機中,我們可以通過設置RCC_CR寄存器中的HSEON位或HSION位來啟動時鐘。

三、代碼實現(xiàn)

實現(xiàn)思路已經確定,下面給出相應的代碼實現(xiàn)。

3.1 延時函數(shù)

為了實現(xiàn)正確的延時,我們需要在代碼中實現(xiàn)一個延時函數(shù)。下面是一種簡單的延時函數(shù)實現(xiàn):

```c
void delay(uint32_t n) {
while(n--) {
asm("nop");
}
}
```

3.2 硬重啟

在stm32單片機中,復位引腳的引腳號為NRST,一般被定義為GPIOA的第0號引腳(PA0)。同時,我們還需要在復位引腳和復位按鍵之間串聯(lián)一個帶有一定延時的電容。

```c
void Reset_System(void) {
//延時一段時間
delay(0xFFFFF);
//啟動時鐘
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //啟動外部高速晶振
RCC_WaitForHSEStartUp(); //等待外部高速晶振就緒
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); //將外部高速晶振選為系統(tǒng)時鐘
RCC_HCLKConfig(RCC_SYSCLK_Div1); //選擇AHB時鐘為HCLK
RCC_PCLK2Config(RCC_HCLK_Div1); //選擇APB2時鐘為HCLK
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
//復位引腳配置
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//將NRST引腳拉低一段時間,模擬復位按鍵的按下操作
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
delay(0x3FF);
//將NRST引腳拉高,完成重啟操作
GPIO_SetBits(GPIOA, GPIO_Pin_0);
}
```

3.3 主函數(shù)

在主函數(shù)中,我們對函數(shù)進行調用即可。

```c
int main(void) {
Reset_System();
//其他代碼
}
```

四、總結

本文介紹了實現(xiàn)stm32單片機每次接上電源就進行一次重啟動的思路,并給出相應的代碼實現(xiàn)。

在實際應用中,我們可以根據(jù)系統(tǒng)的不同運行環(huán)境和實際需求,來設置延時的時間和復位電容的大小。同時,我們還可以采用軟重啟的方式來滿足不同的需求。

最后,需要注意的是,重啟操作可能會對系統(tǒng)的穩(wěn)定性產生影響,應根據(jù)實際需求來考慮是否需要進行系統(tǒng)的重啟。

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

    關注

    31

    文章

    5495

    瀏覽量

    127817
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3702

    瀏覽量

    132613
  • RCC
    RCC
    +關注

    關注

    0

    文章

    95

    瀏覽量

    28122
  • GPIO
    +關注

    關注

    16

    文章

    1300

    瀏覽量

    55287
  • STM32單片機
    +關注

    關注

    59

    文章

    550

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    單片機板跟上位進行串口發(fā)收數(shù)據(jù)時,每次上位下發(fā)指令,為什么?

    單片機板跟上位進行串口發(fā)收數(shù)據(jù)時,每次上位下發(fā)指令,出現(xiàn)問題都是在第條指令后,有時在
    發(fā)表于 08-08 08:20

    單片機怎么驅動電機?

    在各類自動化設備和智能裝置中,電機是重要的執(zhí)行部件,而單片機作為控制核心,需要通過特定的方式驅動電機運轉。單片機驅動電機并非直接連接即可,而是要根據(jù)電機類型和功率,搭配合適的驅動電路,才能實現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?287次閱讀

    使用 CYW4373,啟動后立即進行校準,并且每兩分鐘進行一次校準,怎么操作?

    我已確認校準時電流值處于最大值。 使用 CYW4373,啟動后立即進行校準,并且每兩分鐘進行一次校準。 何時使用 CYW55573 進行校準
    發(fā)表于 07-17 06:16

    PD快充芯片U8732的軟啟動功能

    啟動技術的核心在于控制芯片電源電壓的平穩(wěn)上升。銀聯(lián)寶PD快充芯片U8732內部集成有軟啟動功能,在軟啟動時間TST(典型值 5ms)內,電流峰值從最小值逐步增加,避免變壓器磁芯飽和,
    的頭像 發(fā)表于 07-03 18:02 ?649次閱讀

    使用USB轉TTL串口板和ST-LINK調試下載器給STM32單片機下載程序

    本文詳細介紹如何使用ST-LINK/V2和USB轉TTL串口板為STM32單片機下載程序,包括STM32啟動模式、JTAG與SWD接口對比、驅動安裝及官方軟件
    的頭像 發(fā)表于 06-20 17:26 ?1373次閱讀
    使用USB轉TTL串口板和ST-LINK調試下載器給<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>下載程序

    電機重啟動的控制策略

    ~~~***附件:電機重啟動的控制策略.pdf **【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第時間告知,刪除內容!**
    發(fā)表于 05-27 16:23

    STM32F10xxx單片機編程手冊

    電子發(fā)燒友網站提供《STM32F10xxx單片機編程手冊.pdf》資料免費下載
    發(fā)表于 04-14 14:56 ?12次下載

    STM32F103x8 STM32F103xB單片機數(shù)據(jù)手冊

    STM32F103x8STM32F103xB單片機數(shù)據(jù)手冊
    發(fā)表于 04-14 14:55 ?4次下載

    單片機方面的大佬嗎?有幾個單片機方面的問題需要請教

    單片機本身具有定時系統(tǒng),當傳感器檢測到障礙物以后發(fā)出警報并停止運動系統(tǒng)運行,讓步進電機自動回到初始位置,對于這個系統(tǒng)我還要依靠單片機本身的定時功能來進行每天一次的往返運動。 傳感器目
    發(fā)表于 03-29 18:35

    STM32單片機最小系統(tǒng)電路設計

    單片機最小系統(tǒng)是指用最少的電路組成單片機可以工作的系統(tǒng),通常最小系統(tǒng)包含:電源電路、時鐘電路、復位電路、調試/下載電路,對于STM32還需要啟動
    的頭像 發(fā)表于 03-12 14:09 ?1.6w次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>最小系統(tǒng)電路設計

    AN4121-采用PIC16F單片機進行系統(tǒng)電源控制

    電子發(fā)燒友網站提供《AN4121-采用PIC16F單片機進行系統(tǒng)電源控制.pdf》資料免費下載
    發(fā)表于 01-21 14:42 ?0次下載
    AN4121-采用PIC16F<b class='flag-5'>單片機</b><b class='flag-5'>進行</b>系統(tǒng)<b class='flag-5'>電源</b>控制

    使用ADS1256采集個傳感器的輸出信號,系統(tǒng)每次上電后采集到的電壓值會有不同,為什么?

    單片機接到這個命令,運行一次ADS1256初始化函數(shù)一次,采集電壓同樣出現(xiàn)整體上移或下移 請教TI工程師,可能的原因?附上我的初始化函數(shù)代碼 void ads1256_init(void
    發(fā)表于 12-26 07:08

    上位如何實現(xiàn)發(fā)送參數(shù)給單片機,單片機保存接收的參數(shù)重復運行指定的功能

    ,并且能夠重復以接收到的參數(shù)執(zhí)行指定的功能,知道上位發(fā)送新的參數(shù)進來,如果直不更新且斷開上位連接,那么單片機直以上
    發(fā)表于 12-04 08:19

    stm32單片機畢業(yè)設計——物聯(lián)網智能家居源代碼原理圖

    、設計簡介本畢業(yè)設計項目是基于STM32單片機的物聯(lián)網機智云智能家居系統(tǒng),包含原理圖PCB手機APP。智能家居系統(tǒng)以STM32C8T6單片機
    的頭像 發(fā)表于 11-30 01:03 ?2942次閱讀
    <b class='flag-5'>stm32</b><b class='flag-5'>單片機</b>畢業(yè)設計——物聯(lián)網智能家居源代碼原理圖

    如何實現(xiàn)51單片機與PC的串行通信

    51單片機與PC的串行通信是種常見的通信方式,它允許單片機通過串行接口與PC進行數(shù)據(jù)交換。
    的頭像 發(fā)表于 10-21 11:35 ?3018次閱讀