日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年06月09日(星期一)

正在發(fā)生

2018年06月09日 | stm32中關(guān)于讀取狀態(tài)標(biāo)志位函數(shù)的自我理解

發(fā)布者:cocolang 來源: eefocus關(guān)鍵字:stm32  狀態(tài)標(biāo)志位  函數(shù) 手機看文章 掃描二維碼
隨時隨地手機看文章

為了讓程序能夠讀取多個狀態(tài)標(biāo)志位的狀態(tài)。固件設(shè)計了一個通用的函數(shù)RCC_GetStatus(),來讀取各標(biāo)志位的狀態(tài)。


下面是RCC的所有標(biāo)志位:


*                       - RCC_FLAG_HSIRDY: HSI oscillator clock ready  

*                       - RCC_FLAG_HSERDY: HSE oscillator clock ready  

*                       - RCC_FLAG_PLLRDY: PLL clock ready  

*                       - RCC_FLAG_LSERDY: LSE oscillator clock ready  

*                       - RCC_FLAG_LSIRDY: LSI oscillator clock ready  

*                       - RCC_FLAG_PINRST: Pin reset  

*                       - RCC_FLAG_PORRST: POR/PDR reset  

*                       - RCC_FLAG_SFTRST: Software reset  

*                       - RCC_FLAG_IWDGRST: Independent Watchdog reset  

*                       - RCC_FLAG_WWDGRST: Window Watchdog reset  

*                       - RCC_FLAG_LPWRRST: Low Power reset  

在RCC庫文件中定義了 RCC_FLAG 如下:


#define RCC_FLAG_HSIRDY                  ((u8)0x20)  

#define RCC_FLAG_HSERDY                  ((u8)0x31)  

#define RCC_FLAG_PLLRDY                  ((u8)0x39)  

#define RCC_FLAG_LSERDY                  ((u8)0x41)  

#define RCC_FLAG_LSIRDY                  ((u8)0x61)  

#define RCC_FLAG_PINRST                  ((u8)0x7A)  

#define RCC_FLAG_PORRST                  ((u8)0x7B)  

#define RCC_FLAG_SFTRST                  ((u8)0x7C)  

#define RCC_FLAG_IWDGRST                 ((u8)0x7D)  

#define RCC_FLAG_WWDGRST                 ((u8)0x7E)  

#define RCC_FLAG_LPWRRST                 ((u8)0x7F)  

每個狀態(tài)標(biāo)志位定義為無符號的8位數(shù),通過查找發(fā)現(xiàn),其具體的值表示的是相應(yīng)寄存器中其標(biāo)志位所處的位置

例如獨立看門狗的標(biāo)志位   #define RCC_FLAG_IWDGRST         (u8)0x7D  


那么如何讀取標(biāo)志位是0還是1呢


0:無*****發(fā)生


1:發(fā)生*****


即:判斷寄存器中的標(biāo)志位是0還是1,但個狀態(tài)所在的寄存器總共有三個,且所在寄存器的位也不同


通過源代碼可以發(fā)現(xiàn):采用兩步去完成


1、先判斷該狀態(tài)標(biāo)志是在哪個寄存器中,如下程序:



FlagStatus RCC_GetFlagStatus(u8 RCC_FLAG)  

{  

  u32 tmp = 0;  

  u32 statusreg = 0;  

  FlagStatus bitstatus = RESET;  

  

  /* Check the parameters */  

  assert_param(IS_RCC_FLAG(RCC_FLAG));  

  

  /* Get the RCC register index */  

  tmp = RCC_FLAG >> 5;  

  

  if (tmp == 1)               /* The flag to check is in CR register */  

  {  

    statusreg = RCC->CR;  

  }  

  else if (tmp == 2)          /* The flag to check is in BDCR register */  

  {  

    statusreg = RCC->BDCR;  

  }  

  else                       /* The flag to check is in CSR register */  

  {  

    statusreg = RCC->CSR;  

  }  

三個寄存器對應(yīng)于1,2,3

CR=01,BDCR=11, CSR=11; 也對應(yīng)著每個狀態(tài)標(biāo)志定義數(shù)據(jù)的高三位,例如:


#define RCC_FLAG_IWDGRST         (u8)0x7D =0111 1101 ,其高三位011,即表明它在CSR寄存器中


所以,只要知道每個狀態(tài)標(biāo)志的高三位即可,讓標(biāo)志狀態(tài)右移5位即得高三位數(shù)據(jù)。


第二步判斷是在所屬寄存器的哪一位。


還是看這個宏定義:#define RCC_FLAG_IWDGRST         (u8)0x7D =0111 1101 ,其低五位對應(yīng)著它所在寄存器的位數(shù)


11101=29,說明獨立看門狗復(fù)位標(biāo)志在CSR寄存器的29位。


看固件源程序:



tmp = RCC_FLAG & FLAG_Mask;  

  

if ((statusreg & ((u32)1 << tmp)) != (u32)RESET)  

{  

  bitstatus = SET;  

}  

else  

{  

  bitstatus = RESET;  

}  

  

/* Return the flag status */  

return bitstatus;  

首先:


#define FLAG_Mask                 ((u8)0x1F)  

即FLAG_Mask=0001 1111

它和任何8位的狀態(tài)標(biāo)志做與運算得到其低五位的值,例如


tmp = RCC_FLAG & FLAG_Mask;  

tmp = 11011=29,


statusreg & ((u32)1 << tmp  

然后將其與所對應(yīng)的寄存器做與運算即得到改狀態(tài)標(biāo)志位的值。

最后返回狀態(tài)標(biāo)志位。




固件原函數(shù),根據(jù)各個狀態(tài)標(biāo)志位的具體分布,即所在的寄存器與所在寄存器的位置。定義狀態(tài)標(biāo)志 位8位無符號數(shù),通過對這個數(shù)的前三位與后五位,來確定該狀態(tài)


標(biāo)志位。


關(guān)鍵字:stm32  狀態(tài)標(biāo)志位  函數(shù) 引用地址:stm32中關(guān)于讀取狀態(tài)標(biāo)志位函數(shù)的自我理解

上一篇:STM32 串口固件庫中定義的幾個中斷標(biāo)志什么意思?
下一篇:stm32 uart清除中斷時機

推薦閱讀

?  今天,我們對智能家居的定義是:利用一臺或多臺計算機控制家庭基本功能、包括具有自動控制及遠(yuǎn)程控制功能。這是一個比較廣泛的定義,例如當(dāng)你走到前門時,計算機自動打開燈光或播放你喜歡的音樂。  盡管這些類型的功能非常的流行和有趣,但由于技術(shù)的進步對人們的生活產(chǎn)生了巨大的影響。因此,我們需要重新定義智能家居的功能,以便能夠與更多層次...
前不久的騰訊全球數(shù)字生態(tài)大會上,騰訊車聯(lián)副總裁鐘學(xué)丹表示騰訊將在年內(nèi)發(fā)布車載版本微信,BAT中獨有社交優(yōu)勢的騰訊終于帶著它的強勢產(chǎn)品姍姍來遲。一微信“上車”后車內(nèi)語音交互更便捷據(jù)業(yè)內(nèi)傳言:不久后,騰訊車載微信將首批應(yīng)用于廣汽、長安的兩款量產(chǎn)車型,正式在車市商用。微信“上車”后,車主將直接通過車載微信實現(xiàn)駕駛時全語音交互。目前已經(jīng)官...
據(jù)彭博社報道,在特朗普政府的輪番打擊之下,尤其是5月份新的出口管制規(guī)則以來,華為處境越來越艱難。知情人士透露,華為的部分電信設(shè)備必不可少的芯片庫存將在2021年初用盡。 “在5月份新規(guī)公布的幾天里,華為高層緊急召開了多次會議討論應(yīng)對之策,”與會人員表示,“但尚未得出任何有效的解決...
2021年6月9日 –專注于引入新品并提供海量庫存的電子元器件分銷商貿(mào)澤電子 (Mouser Electronics) 宣布與PANJIT簽訂全球分銷協(xié)議。PANJIT是一家成立于1986年的分立式半導(dǎo)體制造商。簽訂本協(xié)議后,貿(mào)澤開始備貨PANJIT 豐富多樣的產(chǎn)品,包括二極管、整流器和晶體管。貿(mào)澤備貨的PANJIT產(chǎn)品線包括高度可靠的汽車級E-Type瞬態(tài)電壓抑制器 (TVS)。150W至400W...

史海拾趣

問答坊 | AI 解惑

一種小型直流電磁鐵的結(jié)構(gòu)設(shè)計

從電磁鐵結(jié)構(gòu)形式的選擇、磁極形狀的選擇、鐵心的設(shè)計、線圈的設(shè)計、控制部分的設(shè)計等方面介紹了一種小型直流電磁鐵的結(jié)構(gòu)設(shè)計方法,提出了一種電磁鐵設(shè)計新思路. …

查看全部問答∨

(原創(chuàng))校園監(jiān)控?zé)崮艹掷m(xù)多久

大家還記得09年監(jiān)獄看守所監(jiān)控?zé)釂??因為連續(xù)出了幾次熱點事件后,監(jiān)獄看守所監(jiān)控問題一下子被提到第一高度。那幾個月幾乎天天有客戶來問題監(jiān)獄看守所監(jiān)控問題,我們公司工程師做監(jiān)獄看守所監(jiān)控方案和配置做到手痛,但現(xiàn)在慢慢好像回到了平淡。 &n ...…

查看全部問答∨

【求助】DELPHI如何調(diào)用SYS文件

我現(xiàn)在要用delphi調(diào)用一個.SYS文件,實現(xiàn)delphi與SYS文件之間的通信。思想是:SYS文件是一個編譯好了的驅(qū)動文件,不過它并不與硬件相關(guān)聯(lián),它不是一個硬件驅(qū)動,相當(dāng)于一個“軟硬件驅(qū)動”。例如,用delphi調(diào)用SYS中的一個函數(shù),再SYS返回一個值給de ...…

查看全部問答∨

我現(xiàn)在已經(jīng)成功的將CE系統(tǒng)裝入ARM9系統(tǒng)里了,,我如果讓這個系統(tǒng)啟動后自動執(zhí)行一個程序呢

我現(xiàn)在已經(jīng)成功的將CE系統(tǒng)裝入ARM9系統(tǒng)里了,,我如果讓這個系統(tǒng)啟動后自動執(zhí)行一個程序呢?…

查看全部問答∨

編程器和燒寫器區(qū)別?

編程器和燒寫器區(qū)別?…

查看全部問答∨

PC104模塊如何嵌入WinCE系統(tǒng)啊,能給點建議嗎?

PC104模塊如何嵌入WinCE系統(tǒng)啊,能給點建議嗎?…

查看全部問答∨

ST7FLITE29的最小時鐘中斷時間

                                 請教各位高人!我用ST7FLITE29的AT2做定時中斷,16M的外部晶振,最小中斷時間能做到是多少?我計算的是能做到4us,可 ...…

查看全部問答∨

介紹ARM入門

一 首先說說ARM的發(fā)展       可以用一片大好來形容,翻開各個公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。 廣義的嵌入式無非幾種:傳統(tǒng)的什么51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。 & ...…

查看全部問答∨

OLED 顯示器技術(shù)及功能:電源供應(yīng)是否會影響顯示器畫質(zhì)?

作者:Oliver Nachbaur,德州儀器顯示電源系統(tǒng)工程經(jīng)理   有機發(fā)光二極管 (OLED) 顯示器越來越普遍,在手機、媒體播放器及小型入門級電視等產(chǎn)品中最為顯著。不同于標(biāo)準(zhǔn)的液晶顯示器,OLED 像素是由電流源所驅(qū)動。若要了解 OLED 電源供應(yīng) ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved