国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

《嵌入式-STM32開(kāi)發(fā)指南》第一部分 入門篇 - 第4章 庫(kù)開(kāi)發(fā)簡(jiǎn)介

發(fā)布者:WhisperingWind最新更新時(shí)間:2024-12-27 來(lái)源: jianshu關(guān)鍵字:嵌入式  STM32  開(kāi)發(fā)指南  庫(kù)開(kāi)發(fā) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

4.1 STM32 系統(tǒng)架構(gòu)

STM32 的系統(tǒng)架構(gòu)比 51 單片機(jī)就要強(qiáng)大很多了。首先我們看看 STM32 的系統(tǒng)架構(gòu)圖:

圖1 系統(tǒng)架構(gòu)

STM32 主系統(tǒng)主要由四個(gè)驅(qū)動(dòng)單元和四個(gè)被動(dòng)單元構(gòu)成。

四個(gè)驅(qū)動(dòng)單元
?   內(nèi)核 DCode 總線;
?   系統(tǒng)總線;
?   通用 DMA1;
?   通用 DMA2;

四被動(dòng)單元
?   AHB 到 APB 的橋:連接所有的 APB 設(shè)備;
?   內(nèi)部 FlASH 閃存;
?   內(nèi)部 SRAM;
?   FSMC;

下面我們具體講解一下圖中幾個(gè)總線的知識(shí):

① ICode 總線:該總線將 M3 內(nèi)核指令總線和閃存指令接口相連,指令的預(yù)取在該總線上面完成。
② DCode 總線:該總線將 M3 內(nèi)核的 DCode 總線與閃存存儲(chǔ)器的數(shù)據(jù)接口相連接,常量加載和調(diào)試訪問(wèn)在該總線上面完成。
③ 系統(tǒng)總線:該總線連接 M3 內(nèi)核的系統(tǒng)總線到總線矩陣,總線矩陣協(xié)調(diào)內(nèi)核和 DMA 間訪問(wèn)。
④ DMA 總線:該總線將 DMA 的 AHB 主控接口與總線矩陣相連,總線矩陣協(xié)調(diào) CPU 的DCode 和 DMA 到 SRAM,閃存和外設(shè)的訪問(wèn)。
⑤ 總線矩陣:總線矩陣協(xié)調(diào)內(nèi)核系統(tǒng)總線和 DMA 主控總線之間的訪問(wèn)仲裁,仲裁利用輪換算法。
⑥ AHB/APB 橋:這兩個(gè)橋在 AHB 和 2 個(gè) APB 總線間提供同步連接, APB1 操作速度限于36MHz,APB2 操作速度全速。

對(duì)于系統(tǒng)架構(gòu)的知識(shí),在剛開(kāi)始學(xué)習(xí) STM32 的時(shí)候只需要一個(gè)大概的了解,大致知道是個(gè)什么情況即可。對(duì)于尋址之類的知識(shí),這里就不做深入的講解。

圖2 CMSIS架構(gòu)

4.2 STM32的地址映射

在分析這個(gè)問(wèn)題之前,我們看看51 單片機(jī)中是怎么做的。 51 單片機(jī)開(kāi)發(fā)中經(jīng)常會(huì)引用一個(gè) reg51.h 的頭文件,下面我們看看他是怎么把名字和寄存器聯(lián)系起來(lái)的:

sfr P0 =0x80;

sfr 也是一種擴(kuò)充數(shù)據(jù)類型,占用一個(gè)內(nèi)存單元,值域?yàn)?0~255。利用它可以訪問(wèn) 51 單片機(jī)內(nèi)部的所有特殊功能寄存器。如用 sfr P1 = 0x90 這一句定義 P1 為 P1 端口在片內(nèi)的寄存器。然后我們往地址為 0x80 的寄存器設(shè)值的方法是: P0=value;通過(guò)改變value的值來(lái)控制單片機(jī)。

圖3 寄存器映射關(guān)系

所謂地址映射,就是將芯片上的存儲(chǔ)器甚至 I/O 等資源與地址建立一一對(duì)應(yīng)的關(guān)系。如果某地址對(duì)應(yīng)著某寄存器,我們就可以運(yùn)用 C 語(yǔ)言的指針來(lái)尋址并修改這個(gè)地址上的內(nèi)容,從而實(shí)現(xiàn)修改該寄存器的內(nèi)容。打個(gè)比方,寄存器就像快遞員,當(dāng)你在某寶上買了東西后,快遞員就按照地址送到你手上,要想準(zhǔn)確無(wú)誤的送到你手上,就必須保證地址準(zhǔn)確無(wú)誤。

Cortex-M3 的地址映射也是類似的。Cortex-M3 有 32 根地址線,所以它的尋址空間大小為 2 32 bit=4 GB。ARM 公司設(shè)計(jì)時(shí),預(yù)先把這 4 GB 的尋址空間大致地分配好了。它把從 0x40000000 至 0x5FFFFFFF( 512 MB)的地址分配給片上外設(shè)。通過(guò)把片上外設(shè)的寄存器映射到這個(gè)地址區(qū),就可以簡(jiǎn)單地以訪問(wèn)內(nèi)存的方式,訪問(wèn)這些外設(shè)的寄存器,從而控制 外設(shè)的工作。這樣,片上外設(shè)可以使用 C 語(yǔ)言來(lái)操作。CM3 存儲(chǔ)器映射見(jiàn)圖 4- 4。
stm32f10x.h 這個(gè)文件中重要的內(nèi)容就是把 STM32 的所有寄存器進(jìn)行地址映射。如同51 單片機(jī)的 < reg51.h > 頭文件一樣,stm32f10x.h 像一個(gè)大表格,我們?cè)谑褂玫臅r(shí)候就是通過(guò)宏定義進(jìn)行類似查表的操作,大家想象一下沒(méi)有這個(gè)文件的話,我們要怎樣訪問(wèn) STM32的寄存器?有什么缺點(diǎn)?不進(jìn)行這些宏定義的缺點(diǎn)有 :

1)地址容易寫錯(cuò)。
2)我們需要查大量的手冊(cè)來(lái)確定哪個(gè)地址對(duì)應(yīng)哪個(gè)寄存器。
3)看起來(lái)還不好看,且容易造成編程的錯(cuò)誤,效率低,影響開(kāi)發(fā)進(jìn)度。

當(dāng)然,這些工作都是由 ST 的固件工程師來(lái)完成的,只有設(shè)計(jì) CM3 的人才是最了解 CM3的,才能寫出完美的庫(kù)。
在這里我們以外接了 LED 燈的外設(shè) GPIOC 為例,如果是其他的 IO 端口,則改成相應(yīng)的地址即可。在這個(gè)文件中一系列宏實(shí)現(xiàn)了地址映射。

#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)

#define APB2PERIPH_BASE (PERIPH_BASE + 0x1000

#define PERIPH_BASE ((uint32_t)0x40000000)


這幾個(gè)宏定義是從文件中的幾個(gè)部分抽離出來(lái)的,具體的內(nèi)容讀者可參考stm32f10x.h 源碼。

圖4 Cortex-M3 預(yù)定義的存儲(chǔ)器映射

首先看到 PERIPH_BASE 這個(gè)宏,宏展開(kāi)為 0x40000000,并把它強(qiáng)制轉(zhuǎn)換為 uint32_t的 32 位類型數(shù)據(jù),這是因?yàn)?STM32 的地址是 32 位的,是不是覺(jué)得 0x40000000 這個(gè)地址很熟?是的,這是 Cortex-M3 核分配給片上外設(shè) 512MB 尋址空間中的第一個(gè)地址,我們把0x40000000 稱為外設(shè)基地址。

接下來(lái)是宏 APB2PERIPH_BASE,宏展開(kāi)為 PERIPH_BASE(外設(shè)基地址)加上偏移地址 0x10000,即指向的地址為 0x40010000。這個(gè) APB2PERIPH_BASE 宏是什么地址呢?STM32 不同的外設(shè)是掛載在不同的總線上的,見(jiàn)圖 4-6。STM32 芯片有 AHB 總線、APB2總線和 APB1 總線,掛載在這些總線上的外設(shè)有特定的地址范圍。
其中像 GPIO、串口 1、ADC 及部分定時(shí)器是掛載在稱為 APB2 的總線上,掛載到APB2 總 線 上 的 外 設(shè) 地 址 空 間 是 從 0x40010000 至 0x40013FFF 地 址。 這 里 的 第 一個(gè) 地 址, 也 就 是 0x40010000,稱為 APB2PERIPH_BASE (APB2 總線外設(shè)基地址)。

而 APB2 總線基地址相對(duì)于外設(shè)基地址的偏移量為 0x10000 個(gè)地址,即為 APB2 相對(duì)外設(shè)基地址的偏移地址,見(jiàn)表1。

表1


關(guān)鍵字:嵌入式  STM32  開(kāi)發(fā)指南  庫(kù)開(kāi)發(fā) 引用地址:《嵌入式-STM32開(kāi)發(fā)指南》第一部分 入門篇 - 第4章 庫(kù)開(kāi)發(fā)簡(jiǎn)介

上一篇:stm32知識(shí)學(xué)習(xí)的先后順序
下一篇:STM32 USB的實(shí)現(xiàn)和軟件實(shí)現(xiàn)

推薦閱讀最新更新時(shí)間:2025-07-02 19:00

適合STM32的三大嵌入式操作系統(tǒng)
基于STM平臺(tái)且滿足實(shí)時(shí)控制要求操作系統(tǒng),有以下5種可供移植選擇。分別為μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系統(tǒng)(djyos)。下面分別介紹這五種嵌入式操作系統(tǒng)的特點(diǎn)及不足。 1、μClinux μClinux是一種優(yōu)秀的嵌入式Linux版本,其全稱為micro-control Linux,從字面意思看是指微控制Linux。同標(biāo)準(zhǔn)的Linux相比,μClinux的內(nèi)核非常小,但是它仍然繼承了Linux操作系統(tǒng)的主要特性,包括良好的穩(wěn)定性和移植性、強(qiáng)大的網(wǎng)絡(luò)功能、出色的文件系統(tǒng)支持、標(biāo)準(zhǔn)豐富的API,以及TCP/IP網(wǎng)絡(luò)協(xié)議等。因?yàn)闆](méi)有MMU內(nèi)存管理單元,所以其多任務(wù)的實(shí)現(xiàn)需要一定技巧。
[單片機(jī)]
STM32和OV2640的嵌入式圖像采集系統(tǒng)設(shè)計(jì)
引言 隨著電子產(chǎn)品向低功耗、低價(jià)格、智能化的方向發(fā)展,利用視頻傳感器采集圖像成為研究熱點(diǎn),如可視門鈴、安全監(jiān)控 、賽車自動(dòng)循跡 、煙葉圖像采集 、草本葉子圖像采集 等。本文根據(jù)在線采集、分析、存儲(chǔ)圖像的需求,設(shè)計(jì)了嵌入式圖像采集系統(tǒng),運(yùn)用嵌入式芯片STM32對(duì)圖像信息進(jìn)行采集、顯示和存儲(chǔ)。 1 系統(tǒng)結(jié)構(gòu)與功能 圖像采集系統(tǒng)以基于ARM公司的CortexM3內(nèi)核的STM32F103RBT6(以下簡(jiǎn)稱STM32)處理器為核心,配合OV2640攝像頭和TFT液晶顯示器,是一款采集像素多、實(shí)時(shí)性好且成本低廉的圖像采集系統(tǒng)。 系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示,系統(tǒng)通過(guò)JLink口實(shí)現(xiàn)程序在STM32上的仿真、在線調(diào)試,利用JLI
[單片機(jī)]
<font color='red'>STM32</font>和OV2640的<font color='red'>嵌入式</font>圖像采集系統(tǒng)設(shè)計(jì)
GD32F303固件庫(kù)開(kāi)發(fā)(6)----GPIO輸入函數(shù)說(shuō)明
概述 本章主要講解GPIO輸入檢測(cè)。 硬件準(zhǔn)備 這里準(zhǔn)備了2塊開(kāi)發(fā)板進(jìn)行驗(yàn)證,分別是GD32303C_START開(kāi)發(fā)板。 樣品申請(qǐng) https://www.wjx.top/vm/wFGhGPF.aspx# 管腳配置 在GD32303C_START開(kāi)發(fā)板中,按鍵的管腳為PA0。 LED管腳如下所示。 對(duì)GPIO管腳進(jìn)行初始化配置。 /* 使能GPIOB時(shí)鐘*/ rcu_periph_clock_enable(RCU_GPIOB); /*設(shè)置PB14、PB15為推挽輸出 */ gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_14)
[單片機(jī)]
GD32F303固件<font color='red'>庫(kù)</font><font color='red'>開(kāi)發(fā)</font>(6)----GPIO輸入函數(shù)說(shuō)明
ST吸引Linux用戶使用STM32微控制器免費(fèi)開(kāi)發(fā)嵌入式應(yīng)用
意法半導(dǎo)體(STMicroelectronics,簡(jiǎn)稱ST)為包括工程師、學(xué)者和業(yè)余愛(ài)好者等在內(nèi)的Linux 系統(tǒng)用戶拓展了使用廣受歡迎的意法半導(dǎo)體STM32微控制器免費(fèi)開(kāi)發(fā)應(yīng)用的機(jī)會(huì)。 大多數(shù)Linux發(fā)行版都是免費(fèi)使用的,開(kāi)源應(yīng)用軟件讓技術(shù)發(fā)燒友對(duì)Linux著迷。不過(guò),此前市面上常見(jiàn)的嵌入式計(jì)算技術(shù)開(kāi)發(fā)工具多數(shù)只支持Windows PC平臺(tái)。 現(xiàn)在,STM32CubeMX配置器及初始化工具和System Workbench for STM32(由Ac6 Tools公司開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境(IDE),得到openSTM32.org社區(qū)的支持、可在www.st.com/sw4stm32上下載)已經(jīng)上市并都能在Linux操
[嵌入式]
ST吸引Linux用戶使用<font color='red'>STM32</font>微控制器免費(fèi)<font color='red'>開(kāi)發(fā)</font><font color='red'>嵌入式</font>應(yīng)用
STM32一文通(1) -SWD調(diào)試 新建工程
一. SWD方法調(diào)試 SWD方法需要:1. SWD接口 2.ST-LINK V2連接器 首先將STLINK驅(qū)動(dòng)裝好 按照如下方式連接STLINK SWD接線 打開(kāi)keil5 然后進(jìn)入settings 當(dāng)我們調(diào)試程序時(shí): 就可以下載程序啦! 二. 新建工程(寄存器版) 然后,我們打開(kāi)工程目錄,新建下圖中的最后三個(gè)文件. 第一個(gè)是一個(gè)啟動(dòng)文件,到處都能找到 第二個(gè)第三個(gè)暫時(shí)是空文件 然后添加這些文件到工程中 如何選擇啟動(dòng)文件, 我們可以根據(jù)下面的原則 在main文件中,我們寫一個(gè)main函數(shù) 這里注意,我們要先寫一個(gè)空的SystemInit函數(shù)來(lái)騙過(guò)編譯器不報(bào)錯(cuò)
[單片機(jī)]
STM32學(xué)習(xí)筆記5】EXTI外部中斷
前言 本系列文章統(tǒng)一圍繞STM32F103C8T6最小系統(tǒng)開(kāi)發(fā)板進(jìn)行記錄,如涉及其他開(kāi)發(fā)板將會(huì)特別說(shuō)明。 中斷 系統(tǒng)停止當(dāng)前正在運(yùn)行的程序轉(zhuǎn)到其他的服務(wù),可能是程序接收了比自身高優(yōu)先級(jí)的請(qǐng)求,或者是人為設(shè)置中斷,中斷是屬于正常現(xiàn)象。 硬中斷 由硬件產(chǎn)生的,比如像磁盤,網(wǎng)卡,鍵盤,時(shí)鐘等。每個(gè)設(shè)備或設(shè)備集都有它自己的IRQ(中斷請(qǐng)求)?;贗RQ,CPU可以將相應(yīng)的請(qǐng)求分發(fā)到對(duì)應(yīng)的硬件驅(qū)動(dòng)上。 軟中斷 軟中斷是由當(dāng)前正在運(yùn)行的進(jìn)程所產(chǎn)生。 中斷處理過(guò)程 當(dāng)異常中斷發(fā)生時(shí),系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。 在異常中斷處理程序執(zhí)行完成后,程序返回到發(fā)生中斷的指令的下一條指令處執(zhí)行。 在進(jìn)入異常中斷
[單片機(jī)]
入門單片機(jī)stm32定時(shí)器詳解
一、基本定時(shí)器介紹 在STM32中,基本定時(shí)器有TIM6、TIM7等?;径〞r(shí)器主要包含時(shí)基單元,提供16位的計(jì)數(shù),能計(jì)數(shù)0~65535?;径〞r(shí)器除了計(jì)數(shù)功能以外,還能輸出給DAC模塊一個(gè)TRGO信號(hào)?;径〞r(shí)器框圖如下: 二、時(shí)基單元介紹 STM32的所有定時(shí)器都具備時(shí)基單元,時(shí)基單元的功能就是簡(jiǎn)單的計(jì)數(shù),即計(jì)數(shù)時(shí)鐘源TMxCLK的脈沖個(gè)數(shù),這個(gè)時(shí)鐘源來(lái)至APB1總線。高級(jí)和通用定時(shí)器還可以使用其他的時(shí)鐘源進(jìn)行計(jì)數(shù),在高級(jí)定時(shí)器和通用定時(shí)器中會(huì)詳細(xì)介紹。在基本定時(shí)器框架中可知時(shí)基單元包含如下三個(gè)部分: 1.ARR 自動(dòng)重裝載寄存器 2.CNT 計(jì)數(shù)器 3.PSC 預(yù)分頻器 基本定時(shí)器的定時(shí)(計(jì)數(shù))功能配置如下
[單片機(jī)]
STM32的ISP方式和IAP方式下載程序有什么區(qū)別
都可以通過(guò)串口來(lái)下載啊 ISP方式:需要將BOOT管腳配置成上電從System Memory啟動(dòng),System Memory中有一段BOOTLOADER來(lái)接收串口來(lái)的數(shù)據(jù),把它們燒寫到FLASH中。 IAP方式:是用戶自己寫一段燒寫程序,通過(guò)ISP或者仿真器事先燒寫到用戶FLASH中,使用時(shí)通過(guò)某種方式觸發(fā)這段程序,再來(lái)從串口接收數(shù)據(jù),然后燒到相應(yīng)的FLASH中,不需要改變BOOT管腳配置。
[單片機(jī)]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

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

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(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