在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-09-14 14:22 ? 次閱讀

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

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

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

一、背景知識

嵌入式系統中,有兩類重啟,分別是軟重啟和硬重啟。

1.1 軟重啟

軟重啟是指通過程序控制單片機重新開始執行,實現系統的重啟。在stm32單片機中,一般采用如下代碼進行軟重啟:

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

1.2 硬重啟

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

二、實現思路

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

2.1 硬重啟

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

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

2.2 延時

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

三、代碼實現

實現思路已經確定,下面給出相應的代碼實現。

3.1 延時函數

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

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

3.2 硬重啟

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

```c
void Reset_System(void) {
//延時一段時間
delay(0xFFFFF);
//啟動時鐘
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //啟動外部高速晶振
RCC_WaitForHSEStartUp(); //等待外部高速晶振就緒
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); //將外部高速晶振選為系統時鐘
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 主函數

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

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

四、總結

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

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

最后,需要注意的是,重啟操作可能會對系統的穩定性產生影響,應根據實際需求來考慮是否需要進行系統的重啟。

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

    關注

    31

    文章

    5421

    瀏覽量

    123328
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3665

    瀏覽量

    130901
  • RCC
    RCC
    +關注

    關注

    0

    文章

    95

    瀏覽量

    27402
  • GPIO
    +關注

    關注

    16

    文章

    1272

    瀏覽量

    53572
  • STM32單片機
    +關注

    關注

    59

    文章

    549

    瀏覽量

    59383
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    電機重啟動的控制策略

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

    STM32F103x8 STM32F103xB單片機數據手冊

    STM32F103x8STM32F103xB單片機數據手冊
    發表于 04-14 14:55 ?2次下載

    STM32單片機最小系統電路設計

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

    一次電源與二電源有什么不同

    在電力系統和電子設備的供電領域中,一次電源與二電源是兩個至關重要的概念。它們各自承擔著不同的功能和角色,共同確保電力供應的穩定性和可靠性。本文將對
    的頭像 發表于 10-10 14:10 ?4618次閱讀

    STM32單片機的特點介紹

    STM32系列單片機是由ST廠商推出的單片機,基于專為高性能、低成本、低功耗嵌入式應用設計的ARM Cortex-M內核,具備流的外設配置,使其在功耗和集成度方面表現出色,
    的頭像 發表于 09-25 17:19 ?3904次閱讀

    單片機STM32可以用Python寫嗎?可以的開發板有哪些?

    近年來,隨著嵌入式技術的發展,Python語言逐漸被引入到單片機開發中,尤其是些高性能的單片機上。這趨勢給開發者帶來了極大的便利,尤其是在快速原型設計和實驗中。本文將詳細探討
    的頭像 發表于 09-05 08:00 ?7131次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>STM32</b>可以用Python寫嗎?可以的開發板有哪些?

    stm32單片機用什么軟件編程

    STM32單片機種廣泛應用于嵌入式系統領域的微控制器,具有高性能、低功耗、豐富的外設接口等特點。要對STM32單片機
    的頭像 發表于 09-02 10:16 ?3113次閱讀

    stm32單片機引腳介紹及功能

    STM32系列單片機是STMicroelectronics(意法半導體)推出的款基于ARM Cortex-M內核的32位微控制器。STM32單片機
    的頭像 發表于 09-02 09:38 ?1.2w次閱讀

    “AT+SAVETRANSLINK保存透傳連接到Flash”函數,是否每次調用該命令時,都會對FLASH進行一次寫操作?

    關于“AT+SAVETRANSLINK – 保存透傳連接到Flash”這個函數,請問是否每次調用該命令時,都會對FLASH進行一次寫操作,即使寫之后的信息和寫之前是樣的? 比如,假
    發表于 07-15 08:00

    基于STM32單片機的智能窗簾控制系統設計

    系統以STM32單片機進行主控,系統內使用血氧傳感器進行血氧檢測,通過電機控制采集血。按鍵控制采血和檢測。
    的頭像 發表于 06-28 14:24 ?4092次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的智能窗簾控制系統設計

    基于STM32單片機的聲光控節能燈系統設計

    系統使用STM32單片機進行主控,系統內使用光敏電阻模塊來檢測外界的光強,另外通過紅外光電識別模塊進行人體識別,使用聲音傳感器來檢測是否有人聲。
    的頭像 發表于 06-27 10:25 ?2203次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的聲光控節能燈系統設計

    基于STM32單片機的智能溫控風扇系統設計

    系統通過STM32單片機進行主控,系統內通過溫度傳感器進行溫度檢測,并通過顯示屏進行顯示。系統內分為手動和自動兩種控制方式,在手動模式下通過
    的頭像 發表于 06-27 10:23 ?6044次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的智能溫控風扇系統設計

    基于STM32單片機的簡易波形發生器設計

    系統內使用STM32單片機進行主控,proteus內部集成示波器,使用按鍵可以調節波形的輸出方式,在示波器上可以實時觀察波形的變化。
    的頭像 發表于 06-27 10:18 ?2979次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的簡易波形發生器設計

    基于STM32單片機的智能冰箱控制系統設計

    基于單片機設計的款智能冰箱控制系統,可以控制冰箱的制冷裝置,可以采集冰箱的異味濃度,超過閩值之后控制紫外燈進行消毒工作單片機采用單片機采用
    的頭像 發表于 06-25 09:21 ?2093次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的智能冰箱控制系統設計

    使用Built-in接口對esp32c3進行一次程序燒寫之后,程序無法啟動怎么解決?

    使用的環境:v4.4-dev-3042-g220590d599 使用的開發板:ESP32-DevKitM-1 情況是這樣的。 使用Built-in接口對esp32c3進行一次程序燒寫之后,程序無法
    發表于 06-20 07:34
    主站蜘蛛池模板: 亚洲一区二区三区不卡视频 | 西西人体www303sw大胆高清 | 香蕉视频vip | 狠狠噜噜| 午夜精品久久久久久久久 | 好吊妞视频988在线播放 | 午夜亚洲福利 | 欧美黄色片免费观看 | 亚洲午夜久久久久影院 | 日本不卡视频免费的 | 中国成人在线视频 | 很狠操 | 李老汉和小花的性生生活 | 综合久色 | 美女视频一区 | 国产精品1区2区3区在线播放 | 欧美成人免费大片888 | 久久久久女人精品毛片九一 | 久久手机看片 | 欧洲色妇| 日日噜噜夜夜狠狠久久丁香 | 毛片毛片免费看 | 黄色的网站在线观看 | 黄色视网站 | 免费大片黄国产在线观看 | 国产精品美女视频 | 一级毛片免费网站 | 中文字幕一区二区三 | 靓装爱神12丝袜在线播放 | 伊人色综合久久天天爱 | 中文字幕亚洲一区婷婷 | 99 久久99久久精品免观看 | 爱爱永久免费视频网站 | 黄色日批网站 | 成人国产一区二区三区 | 欧美日韩免费大片 | 国产一级毛片午夜 | 综合五月天婷婷丁香 | 2016天天干| 色多多官网 | 日韩毛片网 |