娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月24日(星期二)

正在發(fā)生

2019年09月24日 | STM32 (5) 自己寫庫(kù) 構(gòu)建庫(kù)函數(shù)雛形1 寄存器結(jié)構(gòu)體定義

發(fā)布者:東土大唐88 來(lái)源: eefocus關(guān)鍵字:STM32  庫(kù)函數(shù)  寄存器  結(jié)構(gòu)體定義 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

前面把基礎(chǔ)部分講得差不多,比如說(shuō)什么是寄存器,寄存器映射,怎么樣來(lái)寄存器編程,寄存器編程的時(shí)候應(yīng)該參考官方的什么手冊(cè),


前面講了什么是寄存器   怎么使用寄存器編程  寄存器編程的時(shí)候應(yīng)該 參考哪些手冊(cè) 接下來(lái)我們開始利用固件庫(kù)編程,今天開始從 最底層開始寫庫(kù)函數(shù)  《在零死角玩轉(zhuǎn)STM32》 第九章 l利用我們上節(jié)課的歷程 下面這些是7個(gè)GPIO口的寄存器映射我們到GPIO口的寄存器映射,這些是最底層的東西,我們基本上已經(jīng)學(xué)會(huì)了,那么接下來(lái)我們   進(jìn)入固件庫(kù)編程在真正進(jìn)入固件庫(kù)編程之前,我們應(yīng)該了解固件庫(kù)與寄存器的聯(lián)系,參考《零死角玩轉(zhuǎn)STM32F103-霸道》第九章  自己寫庫(kù)構(gòu)建庫(kù)函數(shù)雛形針對(duì)霸道 和指南者    

 

上圖是我們上節(jié)課的歷程,是我們對(duì)上節(jié)課 寄存器的映射,每一個(gè)寄存器都實(shí)現(xiàn)了寄存器的映射,GPIO口的寄存器有7個(gè),但是如果寄存器多的話,這樣的代碼要寫好多 就不太方便了,那么今天就要來(lái)對(duì)他進(jìn)行優(yōu)化


我們來(lái)看一下上圖中的寄存器映射,比如說(shuō)我們要操作GPIOB  ,那么就要操作  端口B外設(shè)的基地址 :GPIOB_BASE,地址在C語(yǔ)言里就是指針,而且他是32位的,那么他就指向了4個(gè)字節(jié)的內(nèi)存,那么我們的  GPIOB_BASE就指向GPIOB的第一個(gè)地址,那么如果我們操作 GPIOB_BASE  這個(gè)指針,那么他訪問(wèn)的就是CRL這個(gè)寄存器,而且我們可以看到這些寄存器都是有規(guī)律的分布的,地址都是以4個(gè)字節(jié)遞增,這個(gè)就跟C語(yǔ)言當(dāng)中的結(jié)構(gòu)體是類似的,因此我們?cè)?nbsp; 定義一個(gè)結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體也有7個(gè)成員,類型叫做 GPIO_Type,我們剛剛說(shuō)了GPIOB_BASE  是一個(gè)32位的通過(guò)我們這個(gè)指針?biāo)荒茉L問(wèn)4個(gè)字節(jié)的內(nèi)存,那么如果說(shuō)我們想基于這個(gè)地址來(lái)訪問(wèn)GPIO的所有寄存器的話,該怎么辦呢?如果GPIOB_BASE 這個(gè)指針是下圖中的GPIO_Type的結(jié)構(gòu)體類型的話,它就可以訪問(wèn)GPIO的所有寄存器的話了,所以說(shuō)如果我這個(gè)指針和外設(shè)的基地址是一樣的話那我們就可以通過(guò)一個(gè)結(jié)構(gòu)體的方式訪問(wèn)這個(gè)寄存器了,比起上節(jié)課講的每一個(gè)寄存器都要找到他的絕對(duì)地址這樣子要方便很多,那么怎樣將我們的GPIO_BASE轉(zhuǎn)化成GPIO_Type這種結(jié)構(gòu)體類型的指針呢?   C語(yǔ)言當(dāng)中有一種 叫強(qiáng)制類型轉(zhuǎn)化

然后再將上面的類型定義成一個(gè)宏

那么這個(gè)GPIOB可以指向GPIO_Type的所有成員,這里只要GPIO_Type成員的名字對(duì)應(yīng)的實(shí)際地址不變那么,那么這個(gè)結(jié)構(gòu)體的成員名可以 隨便定義

以下的代碼中就是通過(guò)GPIOB的結(jié)構(gòu)體類型指針去訪問(wèn)他的成員變量,利用->這個(gè) 符號(hào)就可以指向他的各個(gè)成員。

總結(jié);實(shí)現(xiàn)結(jié)構(gòu)體方式訪問(wèn)的原理:1.先聲明一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體中包含很多成員, 結(jié)構(gòu)體成員的類型與分布的順序都與我們寄存器的排列方式是一樣的(上圖8.5中寄存器的排列方式與我們結(jié)構(gòu)體中的排列都是一致的,而且我們每一個(gè)寄存器都是u32類型的,與實(shí)際的寄存器大小一致,這樣就做到了結(jié)構(gòu)體GPIO_Type的成員與外設(shè)寄存器的一一對(duì)應(yīng))


2找到外設(shè)的基地址例如是GPIOB_BASE,然后把這個(gè)地址強(qiáng)制轉(zhuǎn)化成上面的結(jié)構(gòu)體類型


經(jīng)過(guò)強(qiáng)制類型轉(zhuǎn)換后,它就指向了GPIO_Type這里的所有成員,那么這樣我們就可以通過(guò)C語(yǔ)言的結(jié)構(gòu)體方式來(lái)操作stm32的所有外設(shè)。

關(guān)鍵字:STM32  庫(kù)函數(shù)  寄存器  結(jié)構(gòu)體定義 引用地址:STM32 (5) 自己寫庫(kù) 構(gòu)建庫(kù)函數(shù)雛形1 寄存器結(jié)構(gòu)體定義

上一篇:STM32的官方庫(kù)函數(shù)調(diào)用
下一篇:STM32F1系列——固件庫(kù)函數(shù)使用手冊(cè)摘要

推薦閱讀

能源互聯(lián)網(wǎng)研究與實(shí)踐快速推進(jìn),新理念、新技術(shù)開始涌現(xiàn),呈現(xiàn)開放、融合態(tài)勢(shì)。準(zhǔn)確把握能源互聯(lián)網(wǎng)發(fā)展方向與基本特征對(duì)研判中國(guó)能源行業(yè)未來(lái)形態(tài)、科學(xué)推進(jìn)能源轉(zhuǎn)型尤為重要。立足于中國(guó)中長(zhǎng)期能源轉(zhuǎn)型不同路徑比較,著眼于“能源+”的高度去定位能源在未來(lái)經(jīng)濟(jì)高質(zhì)量發(fā)展中的位置,結(jié)合對(duì)能源互聯(lián)網(wǎng)架構(gòu)與運(yùn)行機(jī)理的分析以及對(duì)跨界融合實(shí)踐特點(diǎn)的總結(jié)...
本文將介紹USART串口的庫(kù)函數(shù),總的來(lái)說(shuō)有以下函數(shù)體:※ USART_Init函數(shù):初始化所使用的串口外設(shè)※ USART_Cmd函數(shù):使能或者失能USART外設(shè)※ USART_ITConfig函數(shù):使能或者失能指定的USART中斷※ USART_SendData函數(shù):通過(guò)外設(shè)USARTx發(fā)送單個(gè)數(shù)據(jù)※ USART_ReceiveData函數(shù):返回USARTx最近解釋接收到的數(shù)據(jù)※ USART_GetFlagStatus函數(shù):檢查指定的...
近日,浙江省特種設(shè)備科學(xué)研究院攜手紫光軟件智慧能源事業(yè)部啟動(dòng)鍋爐仿真實(shí)訓(xùn)中心建設(shè)工作。實(shí)訓(xùn)中心將具備基礎(chǔ)培訓(xùn)、實(shí)操體驗(yàn)、場(chǎng)景展示等功能,結(jié)合虛擬現(xiàn)實(shí) VR、全息投影技術(shù),實(shí)現(xiàn)虛擬仿真、三維建模,為特種設(shè)備作業(yè)人員的上崗培訓(xùn)、考試及應(yīng)急演練培訓(xùn)等提供服務(wù)和支撐。 浙江省特種設(shè)備科學(xué)研究院是我國(guó)成立最早的特種設(shè)備檢驗(yàn)檢測(cè)機(jī)構(gòu)之一,主要...
廣告摘要聲明廣告TOP1【閱讀原文】中國(guó)機(jī)器人的“黃金十年?中國(guó)機(jī)器人產(chǎn)業(yè)發(fā)展到今天,仍然是一個(gè)比較小的領(lǐng)域,發(fā)展相對(duì)成熟的工業(yè)機(jī)器人,除去系統(tǒng)集成應(yīng)用,單純的核心零部件和本體的規(guī)模也就是百億級(jí),市場(chǎng)玩家仍在逐年增加,小而散是比較顯性的狀態(tài)。服務(wù)機(jī)器人尚處于發(fā)展初期階段,除去家用掃地機(jī)器人,其余的服務(wù)機(jī)器人也僅有百億規(guī)模左右,特種機(jī)...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 右玉县| 洛宁县| 井陉县| 连南| 万年县| 沂源县| 山阳县| 大新县| 东平县| 麻栗坡县| 正镶白旗| 凤山县| 健康| 定州市| 文昌市| 满洲里市| 马关县| 冕宁县| 叙永县| 贺州市| 营山县| 延边| 文山县| 昌吉市| 荔波县| 佛教| 河间市| 广州市| 宁化县| 油尖旺区| 青龙| 观塘区| 日喀则市| 历史| 永仁县| 年辖:市辖区| 修水县| 闽清县| 乌拉特中旗| 焦作市| 额济纳旗|