本篇文章是我在學(xué)習(xí)STM32f103時(shí)整理出來的知識(shí)點(diǎn),知識(shí)點(diǎn)之間沒有連貫性,各位看官可以選擇自己感興趣的知識(shí)點(diǎn)觀看。
01存儲(chǔ)器映射與寄存器映射的區(qū)別
存儲(chǔ)器映射:
存儲(chǔ)器本身不具有地址信息,它的地址是由芯片廠商或用戶分配,給存儲(chǔ)器分配地址的過程就被稱為存儲(chǔ)器映射。
寄存器映射:
有特定功能的內(nèi)存單元,通常我們會(huì)給這個(gè)特殊的內(nèi)存單元一個(gè)名字,這個(gè)給已經(jīng)分配好地址的有特定功能的內(nèi)存單元取別名的過程就叫做寄存器映射。
02何為推挽輸出
1:可以輸出高低電平,用與連接數(shù)字器件,高電平由VDD決定,低電平由VSS決定。
2:推挽結(jié)構(gòu)指兩個(gè)三極管受兩路互補(bǔ)的信號(hào)控制,總是在一個(gè)導(dǎo)通的時(shí)候另外一個(gè)截止,優(yōu)點(diǎn)開關(guān)效率高,電流大,驅(qū)動(dòng)能力強(qiáng)。
3:輸出高電平時(shí),電流輸出到負(fù)載,叫灌電流,可以理解成推,輸出低電平時(shí),負(fù)載電流流向芯片,叫拉電流,即挽。

03何為開漏輸出
1:只能輸出低電平,不能輸出高電平。
2:如果要輸出高電平,則需要外接上拉。
3:開漏輸出具有“線與”功能,一個(gè)為低,全部為低,多用于I2C和SMBUS總線。

04文件包含的含義及形式區(qū)別
實(shí)現(xiàn)文件的包含要使用文件包含命令,文件包含命令的特點(diǎn)是能夠在一個(gè)程序源文件中將另一個(gè)源文件的所有內(nèi)容包含進(jìn)來,其一般形式為:
#include<文件名>
#include"文件名"
文件包含可以嵌套使用,即文件B即可以包含文件A,又可以被文件C包含,它們之間的關(guān)系為A包含B包含C,這種嵌套可以達(dá)到10層以上。 但是要注意文件的互相包含,即文件A包含文件B,而文件B又包含文件A,這是不允許的。 通常給文件命名時(shí)可以用以下代碼來解決重復(fù)調(diào)用的問題:
#ifndef __STM32F10X_H
#define __STM32F10X_H
.
.
#endif
那么尖括號(hào)與雙括號(hào)所表示的文件查找方法又有什么不同:
1:尖括號(hào)表示預(yù)處理程序會(huì)在系統(tǒng)規(guī)定的目錄中查找文件,當(dāng)然也可以由用戶自行設(shè)置。
2:雙括號(hào)表示預(yù)處理程序首先會(huì)在當(dāng)前源文件所在目錄中查找文件,如果無法找到,則轉(zhuǎn)向操作系統(tǒng)的環(huán)境變量所指的目錄中查找,若仍無法找到,最后轉(zhuǎn)向系統(tǒng)規(guī)定的目錄中查找文件。
模擬示波器:
模擬示波器采用的是模擬電路(示波管,其基礎(chǔ)是電子槍)電子槍向屏幕發(fā)射電子,發(fā)射的電子經(jīng)聚焦形成電子束,并打到屏幕上。 屏幕的內(nèi)表面涂有熒光物質(zhì),這樣電子束打中的點(diǎn)就會(huì)發(fā)出光來。
數(shù)字示波器:
數(shù)字示波器是數(shù)據(jù)采集,A/D轉(zhuǎn)換,軟件編程等一系列的技術(shù)制造出來的高性能示波器。 數(shù)字示波器一般支持多級(jí)菜單,能提供給用戶多種選擇,多種分析功能。 還有一些示波器可以提供存儲(chǔ),實(shí)現(xiàn)對(duì)波形的保存和處理,現(xiàn)在普遍是使用數(shù)字濾波器。
06keil5魔術(shù)棒配置
keil5如何設(shè)置程序燒寫進(jìn)開發(fā)板直接可以運(yùn)行:打開魔術(shù)棒-Debug-Use旁邊的Settings-Flash Download-將里面的Reset and Run打開就可以了。
既然說魔術(shù)棒的配置,我們就來說一下魔術(shù)棒里面比較重要的一處配置,如下圖所示:

第一個(gè)紅框的意思:
相當(dāng)于我們?cè)谖募惺褂谩癲efine”語句定義宏一樣,在編譯器中添加宏的好處就是,只要用了這個(gè)模板,就不用源文件中修改代碼了。
STM32F101X_HD宏:
為了告訴STM32標(biāo)準(zhǔn)庫,我們使用的芯片類型是STM32型號(hào)是大容量的,使STM32標(biāo)準(zhǔn)庫根據(jù)我們選定的芯片型號(hào)來配置。
USE_STDPERIPH_DRIVER宏:
為了讓stm32f10x.h包含stm32f10x_conf.h這個(gè)頭文件。
第二個(gè)紅框“Include Paths”這里添加的是頭文件的路徑,如果編譯的時(shí)候提示說找不到頭文件,一般就是這里配置出了問題。 你把頭文件放到了哪個(gè)文件夾,就把該文件夾添加到這里即可。
07位帶操作公式詳解
位帶區(qū)里面的每一個(gè)位都可以通過位帶別名區(qū)的地址來訪問。 位帶區(qū)的一個(gè)位,對(duì)應(yīng)位帶別名區(qū)的四個(gè)字節(jié)。
STM32F103中外設(shè)位帶區(qū)與外設(shè)位帶別名區(qū)的地址轉(zhuǎn)換:
別名地址 = 0x42000000 + (A-0x40000000)84+n*4
STM32F103中SRAM位帶區(qū)與SRAM位帶別名區(qū)的地址轉(zhuǎn)換:
別名地址 = 0x22000000 + (A-0x20000000)84+n*4
A:表示我們要操作的那個(gè)位所在的寄存器的地址
n:位號(hào)
注意:位帶區(qū)的一個(gè)位在位帶別名區(qū)會(huì)被膨脹成四個(gè)字節(jié)
為了方便操作,我們可以把這兩個(gè)公式合并成一個(gè),公式如下:
((addr & 0xF0000000)+0x02000000+((addr &0x000FFFFF)<<5)+(bitnum<<2))
addr:要操作的位所在寄存器的地址
bitnum:位號(hào),即在寄存器的第幾位
配方合成原理:
addr & 0xF0000000 是為了區(qū)別 SRAM 還是外設(shè),實(shí)際效果就是取出 4 或者 2,如果是外設(shè),則取出的是 4,+0X02000000 之后就等于 0X42000000,0X42000000 是外設(shè)別名區(qū)的起始地址。 如果是 SRAM,則取出的是 2,+0X02000000 之后就等于 0X22000000,0X22000000 是 SRAM 別名區(qū)的起始地址。
addr & 0x00FFFFFF 屏蔽了高三位,相當(dāng)于減去 0X20000000 或者 0X40000000,但是為什么是屏蔽高三位? 因?yàn)橥庠O(shè)的最高地址是:0X2010 0000,跟起始地址 0X20000000 相減的時(shí)候,總是低 5 位才有效,所以干脆就把高三位屏蔽掉來達(dá)到減去起始地址的效果,具體屏蔽掉多少位跟最高地址有關(guān)。 SRAM 同理分析即可。 <<5 相當(dāng)于2的5次方相當(dāng)于84,<<2 同理。
08啟動(dòng)文件作用及相關(guān)名詞解釋
啟動(dòng)文件的作用:
1-初始化堆棧指針SP
2-初始化PC指針,指向復(fù)位程序
3-初始化中斷向量表
4-配置系統(tǒng)時(shí)鐘
5-調(diào)用C庫函數(shù)main,最終進(jìn)入C的世界
啟動(dòng)文件中的量:
Stack-棧:
用于局部變量、函數(shù)調(diào)用、函數(shù)形參的開銷,棧是由高向低生長的。
Heap-堆:
堆用于動(dòng)態(tài)內(nèi)存的分配,malloc函數(shù)
保存8:
指定當(dāng)前文件的堆棧按照 8 字節(jié)對(duì)齊。
拇指:
表示后面指令兼容 THUMB 指令。 (16bit)
拇指-2:
兼容16位和32位
出口:
聲明一個(gè)標(biāo)號(hào)可被外部的文件使用,使標(biāo)號(hào)具有全局屬性。
直流電:
分配一個(gè)或者多個(gè)以字為單位的內(nèi)存,以四字節(jié)對(duì)齊,并要求初始化這些內(nèi)存。 在向量表中,DCD 分配了一堆內(nèi)存,并且以 ESR 的入口地址初始化它們。
弱:
表示弱定義,如果外部文件優(yōu)先定義了該標(biāo)號(hào)則首先引用該標(biāo)號(hào),如果外部文件沒有聲明也不會(huì)出錯(cuò)。
進(jìn)口:
表示該標(biāo)號(hào)來自外部文件,跟 C 語言中的 EXTERN 關(guān)鍵字類似。
LDR:
LDR是一個(gè)偽指令,可以作為加載一個(gè)立即數(shù)或者一個(gè)地址到一個(gè)寄存器
09何為CMSIS
ARM? Cortex? 微控制器軟件接口標(biāo)準(zhǔn) (CMSIS) 是 Cortex-M 處理器系列的與供應(yīng)商無關(guān)的硬件抽象層。 CMSIS 可實(shí)現(xiàn)與處理器和外設(shè)之間的一致且簡單的軟件接口,從而簡化軟件的重用,縮短微控制器開發(fā)人員新手的學(xué)習(xí)過程,并縮短新設(shè)備的上市時(shí)間。
10何為TLE-TDD
LTE是基于OFDMA技術(shù)、由3GPP組織制定的全球通用標(biāo)準(zhǔn),包括FDD和TDD兩種模式用于成對(duì)頻譜和非成對(duì)頻譜。
LTE-TDD,國內(nèi)亦稱TD-LTE,即 Time Division Long Term Evolution(分時(shí)長期演進(jìn)),由3GPP組織涵蓋的全球各大企業(yè)及運(yùn)營商共同制定,LTE標(biāo)準(zhǔn)中的FDD和TDD兩個(gè)模式實(shí)質(zhì)上是相同的,兩個(gè)模式間只存在較小的差異,相似度達(dá)90%。 TDD即時(shí)分雙工(Time Division Duplexing),是移動(dòng)通信技術(shù)使用的雙工技術(shù)之一,與FDD頻分雙工相對(duì)應(yīng)。 TD-LTE是TDD版本的LTE的技術(shù),F(xiàn)DD-LTE的技術(shù)是FDD版本的LTE技術(shù)。 TD-SCDMA是CDMA(碼分多址)技術(shù),TD-LTE是OFDM(正交頻分復(fù)用)技術(shù)。 兩者從編解碼、幀格式、空口、信令,到網(wǎng)絡(luò)架構(gòu),都不一樣。
11時(shí)鐘相關(guān)名詞及解釋
RCC:reset clock control復(fù)位和時(shí)鐘控制器
HSE:High Speed External Clock signal高速的外部時(shí)鐘
HSI:Low Speed Internal Clock signal高速的內(nèi)部時(shí)鐘
MCO:microcontroller clock output微控制器時(shí)鐘輸出引腳
AHB:advanced high-performance bus高性能總線
PLLCLK:鎖相環(huán)時(shí)鐘。
SYSCLK:系統(tǒng)時(shí)鐘
HCLK:AHB高速總線時(shí)鐘
PCLK1:APB1低速總線時(shí)鐘
PCLK2:APB2高速總線時(shí)鐘
RTC:為芯片內(nèi)部的RTC外設(shè)提供時(shí)鐘
IWDGCLK:獨(dú)立看門狗時(shí)鐘
-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129998 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7739瀏覽量
171676 -
映射
+關(guān)注
關(guān)注
0文章
49瀏覽量
16473 -
開漏輸出
+關(guān)注
關(guān)注
0文章
77瀏覽量
7711 -
推挽輸出
+關(guān)注
關(guān)注
0文章
89瀏覽量
6883
發(fā)布評(píng)論請(qǐng)先 登錄
如何全面的了解到STM8存儲(chǔ)器和寄存器映射的知識(shí)點(diǎn)?
地址映射和寄存器映射原理分別是什么
什么是存儲(chǔ)器和寄存器映射?如何訪問STM32寄存器內(nèi)容?
STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化
存儲(chǔ)器映射與寄存器映射的區(qū)別 推挽輸出和開漏輸出的概念
評(píng)論