【認識STM32】
F1 代表了基礎型,基于 Cortex-M3 內(nèi)核,主頻為72MHZ,F(xiàn)4 代表了高性能,基于 Cortex-M4 內(nèi)核,主頻 180M。
?
?
【GPIO外設】
一、GPIO的八種工作模式
1、上拉輸入:IO口在無輸入的情況下,保持高電平。
2、下拉輸入:IO口在無輸入的情況下,保持低電平。
3、浮空輸入:浮空輸入狀態(tài)下,IO的電平狀態(tài)是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該端口的電平是不確定的。
4、模擬輸入:輸入信號不經(jīng)施密特觸發(fā)器直接接入,輸入信號為模擬量而非數(shù)字量,其余輸入方式輸入數(shù)字量。
5、推挽輸出:可以輸出高、低電平,連接數(shù)字器件;推挽結構一般是指兩個三極管分別受兩個互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源決定。導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
6、開漏輸出:輸出端相當于三極管的集電極,要得到高電平狀態(tài)需要上拉電阻才行。適合于做電流型的驅(qū)動,其吸收電流的能力相對強(一般20mA以內(nèi))。開漏形式的電路有以下幾個特點:
(1)利用外部電路的驅(qū)動能力,減少IC內(nèi)部的驅(qū)動。當IC內(nèi)部MOSFET導通時,驅(qū)動電流是從外部的VCC流經(jīng)上拉電阻、MOSFET到GND。IC內(nèi)部僅需很小的柵極驅(qū)動電流。
(2)一般來說,開漏是用來連接不同電平的器件,匹配電平用的,因為開漏引腳不連接外部的上拉電阻時,只能輸出低電平,如果需要同時具備輸出高電平的功能,則需要接上拉電阻,很好的一個優(yōu)點是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供TTL/CMOS電平輸出等。(上拉電阻的阻值決定了邏輯電平轉(zhuǎn)換的速度。阻值越大,速度越低功耗越小,所以負載電阻的選擇要兼顧功耗和速度。)
(3)開漏輸出提供了靈活的輸出方式,但是也有其弱點,就是帶來上升沿的延時。因為上升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
(4)可以將多個開漏輸出連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關系,即“線與”??梢院唵蔚睦斫鉃椋涸谒幸_連在一起時,外接一上拉電阻,如果有一個引腳輸出為邏輯0,相當于接地,與之并聯(lián)的回路“相當于被一根導線短路”,所以外電路邏輯電平便為0,只有都為高電平時,與的結果才為邏輯1。
7、復用推挽輸出:此時IO受內(nèi)部外設控制,比如定時器的PWM,比如SPI的MOSI,MISO等。而普通的推挽輸出,則IO受ODR控制。
8、復用開漏輸出:參考復用推挽。
二、總結在STM32中選用IO模式
1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1。
2、帶上拉輸入GPIO_IPU——IO內(nèi)部上拉電阻輸入。
3、帶下拉輸入GPIO_IPD—— IO內(nèi)部下拉電阻輸入。
4、模擬輸入GPIO_AIN ——應用ADC模擬輸入,或者低功耗下省電。
5、開漏輸出GPIO_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現(xiàn)輸出高電平。當輸出為1時,IO口的狀態(tài)由上拉電阻拉高電平,但由于是開漏輸出模式,這樣IO口也就可以由外部電路改變?yōu)榈碗娖交虿蛔???梢宰xIO輸入電平變化,實現(xiàn)C51的IO雙向功能。
6、推挽輸出GPIO_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的。
7、復用功能的推挽輸出GPIO_AF_PP ——片內(nèi)外設功能(I2C的SCL,SDA)。
8、復用功能的開漏輸出GPIO_AF_OD——片內(nèi)外設功能(TX1,MOSI,MISO.SCK.SS)。
【RCC時鐘】
RCC時鐘的主要作用:設置系統(tǒng)時鐘 SYSCLK 、設置 AHB 分頻因子(決定 HCLK 等于多少)、設置 APB2 分頻因子(決定 PCLK2 等于多少)、設置 APB1 分頻因子(決定 PCLK1 等于多少)、設置各個外設的分頻因子;控制 AHB 、 APB2 和 APB1 這三條總線時鐘的開啟、控制每個外設的時鐘的開啟。對于 SYSCLK、HCLK、PCLK2、PCLK1 這四個時鐘的配置一般是:PCLK2 = HCLK = SYSCLK=PLLCLK = 72M, PCLK1=HCLK/2 = 36M。(以stm32f103vet6為例)
使用HSE時,設置系統(tǒng)時鐘的步驟
* 1、開啟HSE ,并等待 HSE 穩(wěn)定
* 2、設置 AHB、APB2、APB1的預分頻因子
* 3、設置PLL的時鐘來源,和PLL的倍頻因子,設置各種頻率主要就是在這里設置
* 4、開啟PLL,并等待PLL穩(wěn)定
* 5、把PLLCK切換為系統(tǒng)時鐘SYSCLK
* 6、讀取時鐘切換狀態(tài)位,確保PLLCLK被選為系統(tǒng)時鐘
【NVIC是嵌套向量中斷控制器】
一、優(yōu)先級定義
在 NVIC 有一個專門的寄存器:中斷優(yōu)先級寄存器 NVIC_IPRx,用來配置外部中斷的優(yōu)先級,IPR 寬度為 8bit,原則上每個外部中斷可配置的優(yōu)先級為 0~255,數(shù)值越小,優(yōu)先級越高。但是絕大多數(shù) CM3 芯片都會精簡設計,以致實際上支持的優(yōu)先級數(shù)減少,在 F103 中,只使用了高 4bit,用于表達優(yōu)先級的這 4bit,又被分組成搶占優(yōu)先級和子優(yōu)先級。如果有多個中斷同時響應,搶占 優(yōu)先級高的就會搶占搶占優(yōu)先級低的優(yōu)先得到執(zhí)行,如果搶占優(yōu)先級相同,就比較子優(yōu)先級。如果搶占優(yōu)先級和子優(yōu)先級都相同的話,就比較他們的硬件中斷編號,編號越小,優(yōu)先級越高。
二、優(yōu)先級分組
優(yōu)先級的分組由內(nèi)核外設 SCB 的應用程序中斷及復位控制寄存器 AIRCR 的 PRIGROUP[10:8] 位 決定,F(xiàn)103 分為了 5 組,具體如下:主優(yōu)先級 = 搶占優(yōu)先級。
【EXTI外部中斷/事件控制器】
EXTI(External interrupt/event controller)—外部中斷/事件控制器,管理了控制器的 20 個中斷/事 件線。每個中斷/事件線都對應有一個邊沿檢測器,可以實現(xiàn)輸入信號的上升沿檢測和下降沿的檢測。EXTI 可以實現(xiàn)對每個中斷/事件線進行單獨配置,可以單獨配置為中斷或者事件,以及觸 發(fā)事件的屬性。
【SysTick系統(tǒng)定時器】
SysTick—系統(tǒng)定時器是屬于 CM3 內(nèi)核中的一個外設,內(nèi)嵌在 NVIC 中。系統(tǒng)定時器是一個 24bit 的向下遞減的計數(shù)器,計數(shù)器每計數(shù)一次的時間為 1/SYSCLK,一般我們設置系統(tǒng)時鐘 SYSCLK 等于 72M。當重裝載數(shù)值寄存器的值遞減到 0 的時候,系統(tǒng)定時器就產(chǎn)生一次中斷,以此循環(huán)往 復。
【通訊的基本概念】
一、串行通訊與并行通訊
按數(shù)據(jù)傳送的方式,通訊可分為串行通訊與并行通訊,串行通訊是指設備之間通過少量數(shù)據(jù)信號線 (一般是 8 根以下),地線以及控制信號線,按數(shù)據(jù)位形式一位一位地傳輸數(shù)據(jù)的通訊方式。而并行通訊一般是指使用 8、16、32 及 64 根或更多的數(shù)據(jù)線進行傳輸?shù)耐ㄓ嵎绞健?/p>
二、全雙工、半雙工及單工通訊
根據(jù)數(shù)據(jù)通訊的方向,通訊又分為全雙工、半雙工及單工通訊,它們主要以信道的方向來區(qū)。
三、同步通訊與異步通訊
根據(jù)通訊的數(shù)據(jù)同步方式,又分為同步和異步兩種,可以根據(jù)通訊過程中是否有使用到時鐘信號。
在同步通訊中,收發(fā)設備雙方會使用一根信號線表示時鐘信號,在時鐘信號的驅(qū)動下雙方進行協(xié) 調(diào),同步數(shù)據(jù),見圖同步通訊 。通訊中通常雙方會統(tǒng)一規(guī)定在時鐘信號的上升沿或下降沿對數(shù) 據(jù)線進行采樣。
在異步通訊中不使用時鐘信號進行數(shù)據(jù)同步,它們直接在數(shù)據(jù)信號中穿插一些同步用的信號位, 或者把主體數(shù)據(jù)進行打包,以數(shù)據(jù)幀的格式傳輸數(shù)據(jù),見圖某種異步通訊 ,某些通訊中還需要雙方約定數(shù)據(jù)的傳輸速率,以便更好地同步。
在同步通訊中,數(shù)據(jù)信號所傳輸?shù)膬?nèi)容絕大部分就是有效數(shù)據(jù),而異步通訊中會包含有幀的各種標識符,所以同步通訊的效率更高,但是同步通訊雙方的時鐘允許誤差較小,而異步通訊雙方的時鐘允許誤差較大。
四、通訊速率
衡量通訊性能的一個非常重要的參數(shù)就是通訊速率,通常以比特率 (Bitrate) 來表示,即每秒鐘傳輸?shù)亩M制位數(shù),單位為比特每秒 (bit/s)。容易與比特率混淆的概念是“波特率”(Baudrate),它表示每秒鐘傳輸了多少個碼元。通訊中常用時間間隔相同的符號來表示一個二進制數(shù)字,這樣的信號稱為碼元。
例:常見的通訊傳輸中,用 0V 表示數(shù)字 0,5V 表示數(shù)字 1,那么一個碼元可以表示兩種狀態(tài) 0 和 1,所以一個碼元等于一個二進制比特位,此時波特率的大小與比特率一致;如果在通訊傳輸中,有 0V、2V、4V 以及 6V 分別表示二進制數(shù) 00、01、10、11,那么每個碼元可以表示四種狀態(tài),即兩個二進制比特位,所以碼元數(shù)是二進制比特位數(shù)的一半,這個時候的波特率為比特率的一半。因為很多常見的通訊中一個碼元都是表示兩種狀態(tài),人們常常直接以波特率來表示比特率。
【串口通訊】
一、物理層:
串口通訊的物理層有很多標準及變種,我們主要講解 RS-232 標準。
根據(jù)通訊使用的電平標準不同,串口通訊可分為 TTL 標準及 RS-232 標準。
TTL 的電平標準,理想狀態(tài)下,使用 5V 表示二進制邏輯 1,使用 0V 表示邏輯 0;而為了增加串口通訊的遠距離傳輸及抗干擾能力,它使用-15V 表示邏輯 1,+15V 表示邏輯 0,即RS232。
因為控制器一般使用 TTL 電平標準,所以常常會使用 MA3232 芯片對 TTL 及 RS-232 電平的信號進行互相轉(zhuǎn)換。
在目前的其它工業(yè)控制使用的串口通訊中,一般只使用 RXD、TXD 以及 GND 三條信號線,直接傳輸數(shù)據(jù)信號,而 RTS、CTS、DSR、DTR 及 DCD 信號都被裁剪掉了。
二、協(xié)議層
串口通訊的數(shù)據(jù)包由發(fā)送設備通過自身的 TXD 接口傳輸?shù)浇邮赵O備的 RXD 接口。在串口通訊的協(xié)議層中,規(guī)定了數(shù)據(jù)包的內(nèi)容,它由啟始位、主體數(shù)據(jù)、校驗位以及停止位組成,通訊雙方的數(shù)據(jù)包格式要約定一致才能正常收發(fā)數(shù)據(jù)。
波特率:串口異步通訊,異步通訊中由于沒有時鐘信號 (如前面講解的 DB9 接口中是 沒有時鐘信號的),所以兩個通訊設備之間需要約定好波特率,即每個碼元的長度,以便對信號 進行解碼,圖串口數(shù)據(jù)包的基本組成 中用虛線分開的每一格就是代表一個碼元。常見的波特率為 4800、9600,115200 等。
通訊的起始和停止信號:串口通訊的一個數(shù)據(jù)包從起始信號開始,直到停止信號結束。數(shù)據(jù)包的起始信號由一個邏輯 0 的數(shù)據(jù)位表示,而數(shù)據(jù)包的停止信號可由 0.5、1、1.5 或 2 個邏輯 1 的數(shù)據(jù)位表示。
有效數(shù)據(jù):在數(shù)據(jù)包的起始位之后緊接著的就是要傳輸?shù)闹黧w數(shù)據(jù)內(nèi)容,也稱為有效數(shù)據(jù),有效數(shù)據(jù)的長度常被約定為 5、6、7 或 8 位長。
數(shù)據(jù)校驗:在有效數(shù)據(jù)之后,有一個可選的數(shù)據(jù)校驗位。由于數(shù)據(jù)通信相對更容易受到外部干擾導致傳輸數(shù)據(jù)出現(xiàn)偏差,可以在傳輸過程加上校驗位來解決這個問題。校驗方法有奇校驗 (odd)、偶校驗 (even)、0 校驗 (space)、1 校驗 (mark) 以及無校驗 (noparity)。
【I2C】
I2C 通訊協(xié)議 (Inter - Integrated Circuit) 是由 Phiilps 公司開發(fā)的,由于它引腳少,硬件實現(xiàn)簡單, 可擴展性強,不需要 USART、CAN 等通訊協(xié)議的外部收發(fā)設備。
一、物理層
1、I2C 通訊設備之間的常用連接方式:
它的物理層有如下特點:
(1) 它是一個支持設備的總線?!翱偩€”指多個設備共用的信號線。在一個 I2C 通訊總線中,可連接多個 I2C 通訊設備,支持多個通訊主機及多個通訊從機。
(2) 一個 I2C 總線只使用兩條總線線路,一條雙向串行數(shù)據(jù)線 (SDA) ,一條串行時鐘線 (SCL)。數(shù) 據(jù)線即用來表示數(shù)據(jù),時鐘線用于數(shù)據(jù)收發(fā)同步。
(3) 每個連接到總線的設備都有一個獨立的地址,主機可以利用這個地址進行不同設備之間的訪問。
(4) 總線通過上拉電阻接到電源。當 I2C 設備空閑時,會輸出高阻態(tài),而當所有設備都空閑,都 輸出高阻態(tài)時,由上拉電阻把總線拉成高電平。
(5) 多個主機同時使用總線時,為了防止數(shù)據(jù)沖突,會利用仲裁方式?jīng)Q定由哪個設備占用總線。
(6) 具有三種傳輸模式:標準模式傳輸速率為 100kbit/s ,快速模式為 400kbit/s ,高速模式下可達 3.4Mbit/s,但目前大多 I2C 設備尚不支持高速模式。
(7) 連接到相同總線的 IC 數(shù)量受到總線的最大電容 400pF 限制。
二、協(xié)議層
1、I2C 基本讀寫過程
2、通訊的起始和停止信號
當 SCL 線是高電平時 SDA 線從高電平向低電平切換,這個情況表示通訊的起始。當 SCL 是高電平時 SDA 線由低電平向高電平切換,表示通訊的停止。起始和停止信號一般由主機產(chǎn)生。
2、 數(shù)據(jù)有效性
SDA 數(shù)據(jù)線在 SCL 的每個時鐘周期傳輸一位數(shù)據(jù)。傳輸時,SCL 為高電平的時候 SDA 表示的數(shù)據(jù)有效,即此時的 SDA 為高電平時表示數(shù)據(jù)“1”,為低電平時表示數(shù)據(jù)“0”。當 SCL 為低電平時,SDA的數(shù)據(jù)無效,一般在這個時候 SDA 進行電平切換,為下一次表示數(shù)據(jù)做好準備。
每次數(shù)據(jù)傳輸都以字節(jié)為單位,每次傳輸?shù)淖止?jié)數(shù)不受限制。
3、地址及數(shù)據(jù)方向
I2C 協(xié)議規(guī)定設備地址可以是 7 位或 10 位,實際中 7 位的地址應用比較廣泛。緊跟設備地址的一個數(shù)據(jù)位用來表示數(shù)據(jù)傳輸方向,它是數(shù)據(jù)方向位 (R/),第 8 位或第 11 位。數(shù)據(jù)方向位為“1”時表示主機由從機讀數(shù)據(jù),該位為“0”時表示主機向從機寫數(shù)據(jù)。
讀數(shù)據(jù)方向時,主機會釋放對 SDA 信號線的控制,由從機控制 SDA 信號線,主機接收信號,寫 數(shù)據(jù)方向時,SDA 由主機控制,從機接收信號。
4、響應
作為數(shù)據(jù)接收端時,當設備 (無論主從機) 接收到 I2C 傳輸?shù)囊粋€字節(jié)數(shù)據(jù)或地址后,若希望對方繼續(xù)發(fā)送數(shù)據(jù),則需要向?qū)Ψ桨l(fā)送“應答 (ACK)”信號,發(fā)送方會繼續(xù)發(fā)送下一個數(shù)據(jù);若接收端 希望結束數(shù)據(jù)傳輸,則向?qū)Ψ桨l(fā)送“非應答 (NACK)”信號,發(fā)送方接收到該信號后會產(chǎn)生一個 停止信號,結束信號傳輸。
傳輸時主機產(chǎn)生時鐘,在第 9 個時鐘時,數(shù)據(jù)發(fā)送端會釋放 SDA 的控制權,由數(shù)據(jù)接收端控制 SDA,若 SDA 為高電平,表示非應答信號 (NACK),低電平表示應答信號 (ACK)。
【SPI】
SPI 協(xié)議是由摩托羅拉公司提出的通訊協(xié)議 (Serial Peripheral Interface),即串行外圍設備接口,是 一種高速全雙工的通信總線。它被廣泛地使用在 ADC、LCD 等設備與 MCU 間,要求通訊速率 較高的場合。
一、SPI物理層
SPI 通訊設備之間的常用連接方式:SPI 通訊使用 3 條總線及片選線,3 條總線分別為 SCK、MOSI、MISO,片選線NSS。(SPI 通訊以 NSS 線置低電平為開始信號,以 NSS 線被拉高作為結束信號)
二、協(xié)議層
1、SPI 通訊的通訊時序
2、通訊的起始和停止信號
NSS 信號線由高變低,是 SPI 通訊的起始信號。NSS 是每個從機各自獨占的信號線,當從機在自己的 NSS 線檢測到起始信號后,就知道自己被主機選中了,開始準備與主機通訊。NSS 信號由低變高,是 SPI 通訊的停止信號,表示本次通訊結束,從機的選中狀態(tài)被取消。
3、數(shù)據(jù)有效性
MOSI 及 MISO 的數(shù)據(jù)在 SCK 的上升沿期間變化輸出,在 SCK 的下降沿時被采樣。即在 SCK 的下降沿時刻,MOSI 及 MISO 的數(shù)據(jù)有效,高電平時表示數(shù)據(jù)“1”,為低電平時表示數(shù)據(jù)“0”。在其它時刻,數(shù)據(jù)無效,MOSI 及 MISO 為下一次表示數(shù)據(jù)做準備。
SPI 每次數(shù)據(jù)傳輸可以 8 位或 16 位為單位,每次傳輸?shù)膯挝粩?shù)不受限制。
數(shù)據(jù)傳輸時,MSB先行或 LSB 先行并沒有作硬性規(guī)定,但要保證兩個 SPI 通訊設備之間使用同樣的協(xié)定,一般都會采用圖 SPI 通訊時序 中的 MSB 先行模式。
4、CPOL/CPHA 及通訊模式
時鐘極性 CPOL 是指 SPI 通訊設備處于空閑狀態(tài)時,SCK 信號線的電平信號 (即 SPI 通訊開始前、 NSS 線為高電平時 SCK 的狀態(tài))。CPOL=0 時,SCK 在空閑狀態(tài)時為低電平,CPOL=1 時,則相反。
時鐘相位 CPHA 是指數(shù)據(jù)的采樣的時刻,當 CPHA=0 時,MOSI 或 MISO 數(shù)據(jù)線上的信號將會在 SCK 時鐘線的“奇數(shù)邊沿”被采樣。當 CPHA=1 時,數(shù)據(jù)線在 SCK 的“偶數(shù)邊沿”采樣。
由 CPOL 及 CPHA 的不同狀態(tài),SPI 分成了四種模式,見表 SPI 的四種模式 ,主機與從機需要工 作在相同的模式下才可以正常通訊,實際中采用較多的是“模式 0”與“模式 3”
【DMA直接存儲區(qū)訪問】
DMA(Direct Memory Access)—直接存儲器存取,是單片機的一個外設,它的主要功能是用來搬數(shù) 據(jù),但是不需要占用 CPU,即在傳輸數(shù)據(jù)的時候,CPU 可以干其他的事情,好像是多線程一樣。數(shù)據(jù)傳輸支持從外設到存儲器或者存儲器到存儲器。
DMA 控制器包含了 DMA1 和 DMA2,其中 DMA1 有 7 個通道,DMA2 有 5 個通道,這里的通道 可以理解為傳輸數(shù)據(jù)的一種管道。要注意的是 DMA2 只存在于大容量的單片機中。
【常用存儲器】
一、存儲器種類
存儲器按其存儲介質(zhì)特性主要分為“易失性存儲器”和“非易失性存儲器”兩大類。其中的“易失/非易失”是指存儲器斷電后,它存儲的數(shù)據(jù)內(nèi)容是否會丟失的特性。
二、易失性存儲器——RAM 存儲器
RAM 是“Random Access Memory”的縮寫,被譯為隨機存儲器。所謂“隨機存取”,指的是當存 儲器中的消息被讀取或?qū)懭霑r,所需要的時間與這段信息所在的位置無關。
1、DRAM動態(tài)隨機存儲器
DRAM 的存儲單元以電容的電荷來表示數(shù)據(jù),有電荷代表 1,無電荷代表 0。但時間一長,代表 1 的電容會放電,代表 0 的電容會吸收電荷,因此它需要定期刷新操作,這就是“動態(tài) (Dynamic)”一詞所形容的特性。
2、SRAM靜態(tài)隨機存儲器
靜態(tài)隨機存儲器 SRAM 的存儲單元以鎖存器來存儲數(shù)據(jù),見圖 SRAM 存儲單元 。這種電路結構 不需要定時刷新充電,就能保持狀態(tài) (當然,如果斷電了,數(shù)據(jù)還是會丟失的),所以這種存儲器 被稱為“靜態(tài) (Static)”RAM。
三、非易失性存儲器
1、ROM 存儲器:ROM 是“Read Only Memory”的縮寫,意為只能讀的存儲器。由于技術的發(fā)展,后來設計出了可以方便寫入數(shù)據(jù)的 ROM,而這個“Read Only Memory”的名稱被沿用下來了。
MASK ROM:MASK(掩膜) ROM 就是正宗的“Read Only Memory”,存儲在它內(nèi)部的數(shù)據(jù)是在出廠時使用特殊工藝固化的,生產(chǎn)后就不可修改,其主要優(yōu)勢是大批量生產(chǎn)時成本低。
OTPROM:OTPROM(One Time Programable ROM) 是一次可編程存儲器。這種存儲器出廠時內(nèi)部并沒有資料,用戶可以使用專用的編程器將自己的資料寫入,但只能寫入一次,被寫入過后,它的內(nèi)容也不可再修改。
EPROM:EPROM(Erasable Programmable ROM) 是可重復擦寫的存儲器,它解決了 PROM 芯片只能寫入一次的問題。這種存儲器使用紫外線照射芯片內(nèi)部擦除數(shù)據(jù),擦除和寫入都要專用的設備。現(xiàn)在這種存儲器基本淘汰,被 EEPROM 取代。
EEPROM:EEPROM(Electrically Erasable Programmable ROM) 是電可擦除存儲器。EEPROM 可以重復擦寫,它的擦除和寫入都是直接使用電路控制,不需要再使用外部設備來擦寫。而且可以按字節(jié)為單位修改數(shù)據(jù),無需整個芯片擦除。
2、FLASH 存儲器
FLASH 存儲器又稱為閃存,它也是可重復擦寫的儲器,部分書籍會把 FLASH 存儲器稱為 FLASH ROM,但它的容量一般比 EEPROM 大得多,且在擦除時,一般以多個字節(jié)為單位。根據(jù)存儲單元電路的不同,F(xiàn)LASH 存儲器又分為 NOR FLASH 和 NAND FLASH。
【ADC】
STM32f103 系列有 3 個 ADC,精度為 12 位,每個 ADC 最多有 16 個外部通道。其中 ADC1 和 ADC2 都有 16 個外部通道,ADC3 根據(jù) CPU 引腳的不同通道數(shù)也不同,一般都有 8 個外部通道。
【DAC】
STM32 具有片上 DAC 外設,它的分辨率可配置為 8 位或 12 位的數(shù)字輸入信號,具有兩個 DAC 輸出通道,這兩個通道互不影響,每個通道都可以使用 DMA 功能,都具有出錯檢測能力,可外 部觸發(fā)。
【TIM】
一、定時器的分類
STM32F1 系列中,除了互聯(lián)型的產(chǎn)品,共有 8 個定時器,分為基本定時器,通用定時器和高級 定時器。
【IWDG獨立看門狗/WWDG窗口看門狗】
一、獨立看門狗定義及使用場景
獨立看門狗:是一個 12 位的遞減計數(shù)器,當計數(shù)器的值從某個值一直減到 0 的時候,系統(tǒng)就會產(chǎn)生一個復位信號,即 IWDG_RESET。如果在計數(shù)沒減到 0 之前,刷新了計數(shù)器的值的話,那么就不會產(chǎn)生復位信號,這個動作就是我們經(jīng)常說的喂狗。
獨立看門狗的時鐘由獨立的 RC 振蕩器 LSI 提供,即使主時鐘發(fā)生故障它仍然有效,非常獨立。LSI 的頻率一般在 30~60KHZ 之間,根據(jù)溫度和工作場合會有一定的漂移,我們一般取 40KHZ, 所以獨立看門狗的定時時間并一定非常精確,只適用于對時間精度要求比較低的場合。
二、窗口看門狗定義及使用場景
窗口看門狗:跟獨立看門狗一樣,也是一個遞減計數(shù)器不斷的往下遞減計數(shù),當減到一個固定值 0X40 時還不喂狗的話,產(chǎn)生復位,這個值叫窗口的下限,是固定的值,不能改變。這個是跟獨立看門狗類似的地方,不同的地方是窗口看門狗的計數(shù)器的值在減到某一個數(shù)之前喂狗的話也會產(chǎn)生 復位,這個值叫窗口的上限,上限值由用戶獨立設置。窗口看門狗計數(shù)器的值必須在上窗口和下 窗口之間才可以喂狗。
三、圖解看門狗
RLR 是重裝載寄存器,用來設置獨立看門狗的計數(shù)器的值。TR 是窗口看門狗的計數(shù)器的值,由 用戶獨立設置,WR 是窗口看門狗的上窗口值,由用戶獨立設置。
審核編輯:湯梓紅
?
評論
查看更多