干貨滿(mǎn)滿(mǎn)!盤(pán)點(diǎn)77條STM32知識(shí),千萬(wàn)不能錯(cuò)過(guò)(一)
1、 SYSCLK時(shí)鐘源有三個(gè):HSI RC、HSE OSC、PLL
2、 MCO[2:0]可以提供4源不同的時(shí)鐘同步信號(hào),PA8
3、 GPIO口有兩個(gè)反向串聯(lián)的二極管用作鉗位二極管。
4、 ICode總線,DCode總線、系統(tǒng)總線、DMA總線、總線矩陣、AHB/APB橋
5、在使用一個(gè)外設(shè)之前,必須設(shè)置寄存器RCC_AHBENR來(lái)打開(kāi)該外設(shè)的時(shí)鐘
6、 STM32復(fù)位有三種:系統(tǒng)復(fù)位、上電復(fù)位、備份區(qū)域復(fù)位。其中系統(tǒng)復(fù)位除了RCC_CSR中的復(fù)位標(biāo)志和BKP中的數(shù)值不復(fù)位之外,其他的所有寄存器全部復(fù)位。觸發(fā)方式例如外部復(fù)位、看門(mén)狗復(fù)位、軟件復(fù)位等;
電源復(fù)位由于外部電源的上電/掉電復(fù)位或者待機(jī)模式返回。復(fù)位除了BKP中的寄存器值不動(dòng),其他全部復(fù)位;
備份區(qū)域復(fù)位的觸發(fā)源為軟件復(fù)位或者VDD和VBAT全部掉電時(shí)。
7、 (NestedVectored Interrupt Controller)NVIC嵌套向量中斷控制器,分為兩種:搶先式優(yōu)先級(jí)(可嵌套)和中斷優(yōu)先級(jí)(副優(yōu)先級(jí),不能嵌套)。
兩種優(yōu)先級(jí)由4位二進(jìn)制位決定。分配下來(lái)有十六種情況:
8、自動(dòng)裝載寄存器和影子寄存器:前者相當(dāng)于51當(dāng)中的溢出設(shè)定數(shù)值。而影子寄存器顧名思義是影子,就是寄存器的另一分copy。
實(shí)際起作用的是影子寄存器,而程序員操縱的則是自動(dòng)裝載寄存器。如果APPE位使能,表明自動(dòng)裝載寄存器的值在下一次更新事件發(fā)生后才寫(xiě)入新值。
否則,寫(xiě)入自動(dòng)裝載寄存器的值會(huì)被立即更新到影子寄存器。
9、計(jì)數(shù)器的數(shù)值與輸出比較器相等時(shí),翻轉(zhuǎn)輸出信號(hào)
10、ARM公司只生產(chǎn)內(nèi)核標(biāo)準(zhǔn),不生產(chǎn)芯片。ST、TI這樣的公司從ARM公司那里購(gòu)買(mǎi)內(nèi)核,然后外加自己的總線結(jié)構(gòu)、外設(shè)、存儲(chǔ)器、時(shí)鐘和復(fù)位、I/O后就組成了自己的芯片。
11、電容觸摸屏原理:通過(guò)充放電的曲線不同來(lái)檢測(cè)是否被按下。實(shí)際的實(shí)驗(yàn)過(guò)程中,TPAD可以用一塊覆銅區(qū)域來(lái)替代,通過(guò)電容的充放電常數(shù)來(lái)確定是否按下。
12、OLED,即有機(jī)發(fā)光二極管,又稱(chēng)為有機(jī)電激光顯示。下圖為OLED的GRAM與屏幕的對(duì)應(yīng)表
PAGE2單獨(dú)列出來(lái):
13、USART可以操縱SPI設(shè)備。不過(guò)最大頻率只有4.5MHz
14、使用I/O口時(shí)應(yīng)該注意的問(wèn)題
15、ADC的Vref+和Vdda與VSS,Vref-一定要加高質(zhì)量的濾波電容,切靠近單片機(jī)。
16、在STM32內(nèi)部,F(xiàn)SMC的一端通過(guò)內(nèi)部高速總線AHB連接到內(nèi)核Cortex-M3,另一端則是面向擴(kuò)展存儲(chǔ)器的外部總線。
內(nèi)核對(duì)外部存儲(chǔ)器的訪問(wèn)信號(hào)發(fā)送到AHB總線后,經(jīng)過(guò)FSMC轉(zhuǎn)換為符合外部存儲(chǔ)器通信規(guī)約的信號(hào),送到外部存儲(chǔ)器的相應(yīng)引腳,實(shí)現(xiàn)內(nèi)核與外部存儲(chǔ)器之間的數(shù)據(jù)交互。
17、FSMC中的DATASET和ADDSET的設(shè)置需要參看外部存儲(chǔ)器的時(shí)序圖來(lái)確定。
一般而言,DATASET指的是數(shù)據(jù)建立時(shí)間,也就是讀/寫(xiě)信號(hào)開(kāi)始到讀/寫(xiě)信號(hào)停止(上升沿存儲(chǔ)數(shù)據(jù))的持續(xù)時(shí)間。(一般來(lái)說(shuō)寫(xiě)比讀快!)
而ADDSET指的是地址建立時(shí)間,指的是片選之后到讀/寫(xiě)操作之前的時(shí)間,這是針對(duì)SRAM來(lái)說(shuō)的,如果操縱的是TFT,不存在地址線,所以此時(shí)的ADDSET就是讀/寫(xiě)信號(hào)結(jié)束到RS電平的轉(zhuǎn)換時(shí)間。
18、
19、
20、FSMC的三個(gè)配置寄存器:FSMC_BCRx(片選控制配置)、FSMC_BTRx(片選時(shí)序)、FSMC_BWTRx(片選寫(xiě)時(shí)序)。
21、RTC時(shí)鐘配置必須要用到BKP寄存器,BKP寄存器在單片機(jī)復(fù)位、電源復(fù)位、待機(jī)喚醒模式下是不會(huì)更改值的,他的供電由VDD供電,VDD被切斷后自動(dòng)切換至外部的VBAT供電。
22、要修改BKP寄存器的值,必須取消其寫(xiě)保護(hù)的標(biāo)志。BKP寄存器在上電時(shí)自動(dòng)寫(xiě)保護(hù)。
23、Stm32有三種省電模式:
三種省電模式中,耗電量從上到下依次降低,待機(jī)模式的電流僅為2uA。
24、從待機(jī)模式中喚醒單片機(jī)等效于讓單片機(jī)復(fù)位,但是電源寄存器的值會(huì)有一個(gè)標(biāo)志位指示單片機(jī)是被喚醒的,不是被復(fù)位的。
25、ADC的時(shí)鐘不要超過(guò)14MHz,否則轉(zhuǎn)換精度會(huì)下降。最大轉(zhuǎn)換速率為1MHz,即轉(zhuǎn)換周期為1us(14MHz,采樣周期為1.5個(gè)ADC時(shí)鐘)
26、Tcovn=采樣時(shí)間+12.5個(gè)周期。采樣時(shí)間盡量選長(zhǎng)一點(diǎn),這樣精度高一些,但是轉(zhuǎn)換速率下降,這也是有利必有弊。
27、
28、拿ARM7TDMI來(lái)說(shuō),T代表Thumb指令集,D是說(shuō)支持JTAG調(diào)試(Debugging),M意指快速乘法器,I則對(duì)應(yīng)一個(gè)嵌入式ICE模塊。
29、MMU作為嵌入式處理器與應(yīng)用處理器的分水嶺標(biāo)志A具有內(nèi)存管理單元的嵌入式處理器可以定位為應(yīng)用處理器。
這么說(shuō)M系列和A系列的處理器的區(qū)別在于A系列的處理器具有MMU單元可以進(jìn)行內(nèi)存模塊的管理。