1、AHB系統(tǒng)總線分為APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速設(shè)備
2、STM32f10x.h相當(dāng)于reg52.h(里面有基本的位操作定義),另一個(gè)為stm32f10x_conf.h專門(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左右。
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)的二極管用作鉗位二極管,相關(guān)文章:單片機(jī)中如何用二極管實(shí)現(xià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公司出廠配置鎖死,用戶無(wú)法編輯,用于對(duì)FLASH區(qū)域進(jìn)行重新編程。所以我們燒寫(xiě)程序務(wù)必選擇BOOT1 = 0,這樣通過(guò)內(nèi)嵌的自舉程序?qū)LASH進(jìn)行燒寫(xiě),比如中斷向量表和代碼,相關(guān)文章:STM32的啟動(dòng)模式配置與應(yīng)用
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)中斷向量的位置是最后的決定因素?。。。?/span>
22、上電初始化后AIRC初始化為0,為16個(gè)搶先式優(yōu)先級(jí),但是由于所有的外部通道中斷優(yōu)先級(jí)控制字PRI_n為0,所以搶先式優(yōu)先級(jí)相同,此時(shí)就不能嵌套了
23、NVI中有ISER[2](Interrupt Set-Enable Registersl),ICER[2](Interrupt Clear-Enable Registers),ISPR[2](Interrupt Set-Pending Registers),ICPR[2](Interrupt Clear-Pending Registers),IABR[2](Active Bit Registers),IPR[15](InterruptPriority Registers)定義。其中ISER和ICER分別為中斷使能和中斷失能寄存器,都是寫(xiě)1來(lái)使能/失能中斷的。為什么寫(xiě)1?為什么不采用一個(gè)寄存器而用兩個(gè)寄存器來(lái)表示中斷使能/失能狀態(tài)?由于硬件,寫(xiě)0比較復(fù)雜,并且可能造成其他位的狀態(tài)改變,所以用1來(lái)表示打開(kāi)或者關(guān)斷是比較合理的
24、中斷標(biāo)志位需要手動(dòng)清除
25、配置外圍器件的一般步驟:
打開(kāi)端口時(shí)鐘
定義初始化結(jié)構(gòu)體并初始化
調(diào)用
26、串口的奇偶校驗(yàn):如果是奇偶校驗(yàn),那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;這個(gè)數(shù)據(jù)的長(zhǎng)度必須設(shè)定為9位!
27、ADC的規(guī)則組可以自定義轉(zhuǎn)換通道順序和轉(zhuǎn)換的通道個(gè)數(shù)。在實(shí)際應(yīng)用中,有時(shí)候希望有一些特別的通道具有很高的優(yōu)先權(quán),需要在規(guī)則組進(jìn)行轉(zhuǎn)換的時(shí)候強(qiáng)制打斷,進(jìn)行另一個(gè)通道的轉(zhuǎn)換,這樣一組通道,叫做注入組。