那曲檬骨新材料有限公司

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

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

3天內不再提示

stm32讀取boot引腳狀態

科技綠洲 ? 來源:網絡整理 ? 作者:網絡整理 ? 2024-08-22 09:48 ? 次閱讀

STM32微控制器中,Boot引腳(通常指的是BOOT0和BOOT1引腳)的狀態決定了設備啟動時的引導模式。這些引腳的狀態在復位時被讀取,并據此選擇啟動哪塊存儲器。比如,STM32F103系列微控制器,其BOOT0引腳用于在內部Flash、系統存儲器或SRAM之間選擇啟動源,而BOOT1引腳在某些系列中用于啟用從內置SRAM啟動的選項(但請注意,不是所有STM32系列都支持通過BOOT1改變啟動源)。

讀取Boot引腳狀態

在STM32中,Boot引腳的狀態并不是直接通過一個寄存器讀取的,因為它們在復位期間被用于配置啟動模式,并且一旦復位完成,這些引腳的狀態就不再直接反映在系統寄存器中。然而,你可以通過配置GPIO端口來“間接”讀取這些引腳的狀態,但請注意,這實際上是在查看引腳當前的電平狀態,而不是它們在復位時決定啟動模式的狀態。

示例:配置GPIO讀取BOOT0引腳狀態

以下是一個基于STM32F103系列的示例,展示如何通過配置GPIO端口來讀取BOOT0引腳的狀態(注意,這僅代表引腳當前的電平,不代表啟動時的配置)。

  1. 初始化GPIO端口 :首先,你需要將BOOT0引腳配置為GPIO輸入模式。
  2. 讀取引腳狀態 :然后,你可以通過讀取該GPIO端口的輸入數據寄存器來獲取BOOT0引腳的狀態。
c復制代碼#include "stm32f10x.h"  void GPIO_Init(void) {      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能GPIOA時鐘      GPIO_InitTypeDef GPIO_InitStructure;      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // BOOT0引腳連接到GPIOA的第0腳      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 上拉輸入      GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化GPIOA  }  uint8_t ReadBoot0Pin(void) {      if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_SET) {          return 1; // BOOT0為高電平      } else {          return 0; // BOOT0為低電平      }  }  int main(void) {      GPIO_Init(); // 初始化GPIO      uint8_t boot0Status = ReadBoot0Pin(); // 讀取BOOT0引腳狀態      // 這里可以根據boot0Status做進一步處理      while (1) {          // 主循環      }  }

請注意,上述代碼示例是在STM32F10x標準外設庫的基礎上編寫的。如果你使用的是HAL庫或LL庫,初始化GPIO的代碼將會有所不同。

此外,再次強調,這種方法讀取的是BOOT0引腳當前的電平狀態,而不是它在復位時用于確定啟動模式的電平狀態。如果你需要基于Boot引腳的狀態來改變程序的行為,通常這種決策應該在固件啟動的早期階段(如啟動文件或主函數開始處)就完成。

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

    關注

    38

    文章

    7528

    瀏覽量

    164339
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357541
  • 引腳
    +關注

    關注

    16

    文章

    1220

    瀏覽量

    50897
  • Boot
    +關注

    關注

    0

    文章

    150

    瀏覽量

    35944
收藏 人收藏

    評論

    相關推薦

    STM32F769I-DISCO在代碼中為什么無法控制引腳狀態

    明明數據手冊里標的是D7對應PK4引腳,也就是設置GPIOK GPIO PIN 4才應該是改變這個引腳狀態,但是之后實驗發現改變GPIOJ 3反而是改變這個PK4的狀態?而且在main函數里不管寫
    發表于 03-19 06:28

    STM8的PB5無法讀取腳狀態是哪里的問題?

    把PB5設計為GPIO時,無法讀取腳狀態,使用GPIO_ReadInputPin讀取狀態時,無法管腳是高還是低讀出來的狀態都是低,不知道是
    發表于 05-06 07:16

    在關斷狀態下CYT2B93的引腳狀態是什么?

    我使用的是 CYT2B93,我對關斷狀態下的引腳狀態很好奇。 (關閉電源) 我將 CYT2B93 GPIO 引腳連接到外部上拉(5V)。 當 MCU 處于開機狀態時,GPIO PI
    發表于 05-20 06:37

    請問TPA3118觸發過流等保護的時候mute引腳狀態是什么?

    ,由于試驗環境原因,也不方便實測驗證。請問TPA3118 觸發過流等保護的時候mute引腳狀態是什么?會是因為TPA3118 觸發過流等保護的時候mute引腳狀態也會拉高,這樣導致所有TPA3118都不能工作?
    發表于 10-28 08:14

    STM32F103芯片掉電復位狀態下GPIO引腳狀態

    STM32F103芯片復位狀態下GPIO引腳狀態應為默認值低電平,但是我測試的時候發現在單片機剛開始掉電時,單片機的引腳輸出了高電平。因此在設計電路時應考慮單片機電源應比其他電源掉電慢
    發表于 02-27 00:06

    AM3354 boot 模式讀取后 配置引腳狀態問題

    本帖最后由 一只耳朵怪 于 2018-6-5 09:55 編輯 Hi,大家好,請教一個有關boot配置引腳問題:我們知道,boot模式是在PWRONRETn輸入引腳上升沿有效時通
    發表于 06-04 02:28

    請問ADXL362初始化后的引腳狀態是什么狀態

    各位工程師:大家好!最近在用ADXL362做一款手環設備。請問大家一下,當芯片上電初始化后各個引腳狀態是什么狀態?希望得到大家的幫助或者相關的資料,謝謝大家 以上宏雁
    發表于 08-17 06:59

    如果我不使用它們的引腳狀態是什么?

    我有兩個關于引腳狀態的問題。1.如果我有一個具有500個GPIO引腳的FPGA芯片,我使用100個引腳。左側400 GPIO引腳不在我的設計中,因此我不對它們進行任何配置(在約束文件中
    發表于 03-04 13:41

    fpga板上的輸出引腳狀態是什么

    當未使用的輸出在約束文件中注釋掉并且顯然未在項目中聲明時,fpga板上的輸出引腳狀態是什么 - 特別是對于Vivado 14.4 Verilog。在一些示例中,未使用的輸出端口在約束文件中明確聲明
    發表于 04-01 07:26

    stm32如何在一條語句中對多個引腳狀態進行定義

    如題,在做項目時,希望某幾個引腳狀態同步變化,比如4,5,6一共3個pin。如果使用GPIO_SetBits等語句,不能同步對這幾個引腳進行設置,因為這幾個引腳狀態不一定是相同的,可能為0,也可能
    發表于 07-23 16:16

    S32K144為什么無法使用“PINS_DRV_ReadPins(PTA);”讀取引腳狀態

    我是 nxp S32K144 微控制器的新手。我無法使用“PINS_DRV_ReadPins(PTA);”讀取引腳狀態 .有人可以告訴我我能做什么嗎
    發表于 03-24 07:51

    STM32F769I-DISCO無論是toggle還是write函數都無法改變初始配置好的引腳狀態要怎么解決?

    明明數據手冊里標的是D7對應PK4引腳,也就是設置GPIOK GPIO PIN 4才應該是改變這個引腳狀態,但是之后實驗發現改變GPIOJ 3反而是改變這個PK4的狀態?而且在main函數里不管寫
    發表于 08-07 07:28

    BOOT1和BOOT0引腳狀態

    所謂啟動,一般來說就是指我們下好程序后,重啟芯片時,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存。用戶可以通過設置BOOT1和BOOT0引腳
    的頭像 發表于 07-06 16:32 ?7809次閱讀

    stm32boot0和boot1對應哪個p引腳

    STM32系列微控制器是一種廣泛應用于嵌入式系統領域的32位微控制器。在STM32系列微控制器中,BOOT0和BOOT1是兩個重要的引腳,它
    的頭像 發表于 08-22 09:40 ?3690次閱讀

    STM32引腳中的BOOT1在哪里

    BOOT1引腳是一個用于選擇STM32微控制器啟動模式的引腳。當系統上電或復位時,BOOT1的電平
    的頭像 發表于 08-22 09:43 ?2367次閱讀
    飞七棋牌游戏下载| 百家乐视频游戏挖坑| 百家乐官网有没有单机版的| 百家乐全部规则| K7百家乐的玩法技巧和规则 | k7线上娱乐| 娱乐城注册送金| 江孜县| 百家乐官网娱乐城反水| 澳门百家乐官网真人娱乐场 | 百家乐官网注码管理| 现场百家乐官网电话投注| 易胜博百家乐官网娱乐城| 豪门百家乐官网的玩法技巧和规则 | 蓝盾百家乐代理打| 大发888 大发888官网| 大发888娱乐场| 剑川县| 澳门百家乐官网的公式| 恒丰百家乐官网的玩法技巧和规则| 百家乐有真假宝单吗| 希尔顿百家乐娱乐城| 大连娱网棋牌步步为赢| 永利百家乐官网娱乐| 网络百家乐官网赌博视频| 百家乐官网乐赌| 打百家乐纯打庄的方法| 大发888娱乐城34| 荆门市| 百家乐官网国际娱乐场| 百家乐投注网中国| 太阳百家乐娱乐| 百家乐必胜法| 百家乐官网封号| 百家乐真人游戏网上投注| 大发888金皇冠娱乐城| 百家乐官网赢钱lv| 百家乐官网具体怎么收费的| 立博百家乐的玩法技巧和规则| 澳门开户| 百家乐官网高返水|