意法半導(dǎo)體STM32系列專(zhuān)為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)的ARM Cortex®-M0,M0+,M3, M4和M7內(nèi)核的32位MCU。意法半導(dǎo)體的STM32基本型系列、增強(qiáng)型系列、USB基本型系列、互補(bǔ)型系列;沿用增強(qiáng)型系列的72兆赫茲處理頻率。內(nèi)存包括64KB到256KB閃存和 20KB到64KB嵌入式SRAM。采用LQFP64、LQFP100和LFBGA100三種封裝,不同的封裝保持引腳排列一致性,結(jié)合STM32平臺(tái)的設(shè)計(jì)理念,開(kāi)發(fā)人員通過(guò)選擇產(chǎn)品可重新優(yōu)化功能、存儲(chǔ)器、性能和引腳數(shù)量,以最小的硬件變化來(lái)滿(mǎn)足個(gè)性化的應(yīng)用需求。 下面主要介紹關(guān)于STM32常見(jiàn)問(wèn)題。 1、AHB系統(tǒng)總線分為APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速設(shè)備 2、Stm32f10x.h相當(dāng)于reg52.h(里面有基本的位操作定義),另一個(gè)為stm32f10x_conf.h專(zhuān)門(mén)控制外圍器件的配置,也就是開(kāi)關(guān)頭文件的作用 3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般為8MHz,HSI RC(High Speed InternalRC)高速內(nèi)部RC,8MHz 4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般為32.768KHz,LSI RC(Low Speed InternalRC)低速內(nèi)部晶振,大概為40KHz左右,提供看門(mén)狗時(shí)鐘和自動(dòng)喚醒單元時(shí)鐘源 5、SYSCLK時(shí)鐘源有三個(gè)來(lái)源:HSI RC、HSE OSC、PLL 6、MCO[2:0]可以提供4源不同的時(shí)鐘同步信號(hào),PA8 7、GPIO口貌似有兩個(gè)反向串聯(lián)的二極管用作鉗位二極管 8、總線矩陣采用輪換算法對(duì)系統(tǒng)總線和DMA進(jìn)行仲裁 9、ICode總線,DCode總線、系統(tǒng)總線、DMA總線、總線矩陣、AHB/APB橋 10、在使用一個(gè)外設(shè)之前,必須設(shè)置寄存器RCC_AHBENR來(lái)打開(kāi)該外設(shè)的時(shí)鐘。 11、數(shù)據(jù)字節(jié)以小端存儲(chǔ)形式保存在存儲(chǔ)器中。 12、內(nèi)存映射區(qū)分為8個(gè)大塊,每個(gè)塊為512MB 13、FLASH的一頁(yè)為1K(小容量和中容量),大容量是2K 14、系統(tǒng)存儲(chǔ)區(qū)(SystemMemory)為ST公司出廠配置鎖死,用戶(hù)無(wú)法編輯,用于對(duì)FLASH區(qū)域進(jìn)行重新編程。所以我們燒寫(xiě)程序務(wù)必選擇BOOT1 = 0,這樣通過(guò)內(nèi)嵌的自舉程序?qū)LASH進(jìn)行燒寫(xiě),比如中斷向量表和代碼。 15、STM32核心電壓為1.8V 16、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í)。 17、單片機(jī)復(fù)位后所有I/O口均為浮空輸入狀態(tài) 18、68個(gè)可屏蔽中斷通道,16個(gè)可編程優(yōu)先級(jí),16個(gè)內(nèi)核中斷,一共68+16=84個(gè)中斷。103系列只有60個(gè)中斷,107系列才有68個(gè)中斷 19、系統(tǒng)啟動(dòng)從0x00000004開(kāi)始,0x000 0000保留 20、(NestedVectored Interrupt Controller)NVIC嵌套向量中斷控制器,分為兩種:搶先式優(yōu)先級(jí)(可嵌套)和中斷優(yōu)先級(jí)(副優(yōu)先級(jí),不能嵌套)。兩種優(yōu)先級(jí)由4位二進(jìn)制位決定。分配下來(lái)有十六種情況: 21、0號(hào)搶先優(yōu)先級(jí)的中斷,可以打斷任何中斷搶先優(yōu)先級(jí)為非0號(hào)的中斷;1號(hào)搶先優(yōu)先級(jí)的中斷,可以打斷任何中斷搶先優(yōu)先級(jí)為2、3、4號(hào)的中斷;……;構(gòu)成中斷嵌套。如果兩個(gè)中斷的搶先優(yōu)先級(jí)相同,誰(shuí)先出現(xiàn),就先響應(yīng)誰(shuí),不構(gòu)成嵌套。如果一起出現(xiàn)(或掛在那里等待),就看它們2個(gè)誰(shuí)的子優(yōu)先級(jí)高了,如果子優(yōu)先級(jí)也相同,就看它們的中斷向量位置了。原來(lái)中斷向量的位置是最后的決定因素 22、上電初始化后AIRC初始化為0,為16個(gè)搶先式優(yōu)先級(jí),但是由于所有的外部通道中斷優(yōu)先級(jí)控制字PRI_n為0,所以搶先式優(yōu)先級(jí)相同,此時(shí)就不能嵌套了。 STM32通過(guò)其產(chǎn)品能力,向市場(chǎng)證明了一件事:Cortex-M系列MCU市場(chǎng)用量巨大。由于MCU供需失衡,這種不平衡導(dǎo)致MCU有10~15%的價(jià)格上漲是合理的,這種結(jié)果和生產(chǎn)線的停產(chǎn),以及連續(xù)的產(chǎn)線開(kāi)關(guān)相比影響將是有限的。國(guó)產(chǎn)靈動(dòng)微MM32單片機(jī)可兼容替換STM32系列,英尚微電子支持提供產(chǎn)品技術(shù)支持及應(yīng)用解決方案。 |