30條超詳細STM32單片機學習筆記
2019-07-12 16:52:25閱讀量:2061
1、AHB系統總線分為APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速設備
2、Stm32f10x.h相當于reg52.h(里面有基本的位操作定義),另一個為stm32f10x_conf.h專門控制外圍器件的配置,也就是開關頭文件的作用
3、 HSE Osc(High Speed External Oscillator)高速外部晶振,一般為8MHz,HSI RC(High Speed InternalRC)高速內部RC,8MHz
4、 LSE Osc(Low Speed External Oscillator)低速外部晶振,一般為32.768KHz,LSI RC(Low Speed InternalRC)低速內部晶振,大概為40KHz左右,提供看門狗時鐘和自動喚醒單元時鐘源
5、 SYSCLK時鐘源有三個來源:HSI RC、HSE OSC、PLL
6、 MCO[2:0]可以提供4源不同的時鐘同步信號,PA8
7、 GPIO口貌似有兩個反向串聯的二極管用作鉗位二極管。
8、 總線矩陣采用輪換算法對系統總線和DMA進行仲裁
9、 ICode總線,DCode總線、系統總線、DMA總線、總線矩陣、AHB/APB橋
10、在使用一個外設之前,必須設置寄存器RCC_AHBENR來打開該外設的時鐘
11、數據字節以小端存儲形式保存在存儲器中
12、 內存映射區分為8個大塊,每個塊為512MB
13、 FLASH的一頁為1K(小容量和中容量),大容量是2K。
14、 系統存儲區(SystemMemory)為ST公司出廠配置鎖死,用戶無法編輯,用于對FLASH區域進行重新編程。所以我們燒寫程序務必選擇BOOT1 = 0,這樣通過內嵌的自舉程序對FLASH進行燒寫,比如中斷向量表和代碼
15、 STM32核心電壓為1.8V
16、 STM32復位有三種:系統復位、上電復位、備份區域復位。其中系統復位除了RCC_CSR中的復位標志和BKP中的數值不復位之外,其他的所有寄存器全部復位。觸發方式例如外部復位、看門狗復位、軟件復位等;電源復位由于外部電源的上電/掉電復位或者待機模式返回。復位除了BKP中的寄存器值不動,其他全部復位;備份區域復位的觸發源為軟件復位或者VDD和VBAT全部掉電時。
17、 單片機復位后所有I/O口均為浮空輸入狀態
18、 68個可屏蔽中斷通道,16個可編程優先級,16個內核中斷,一共68+16=84個中斷。103系列只有60個中斷,107系列才有68個中斷
19、 系統啟動從0x00000004開始,0x000 0000保留
20、 (NestedVectored Interrupt Controller)NVIC嵌套向量中斷控制器,分為兩種:搶先式優先級(可嵌套)和中斷優先級(副優先級,不能嵌套)。兩種優先級由4位二進制位決定。分配下來有十六種情況:
21、0號搶先優先級的中斷,可以打斷任何中斷搶先優先級為非0號的中斷;1號搶先優先級的中斷,可以打斷任何中斷搶先優先級為2、3、4號的中斷;……;構成中斷嵌套。如果兩個中斷的搶先優先級相同,誰先出現,就先響應誰,不構成嵌套。如果一起出現(或掛在那里等待),就看它們2個誰的子優先級高了,如果子優先級也相同,就看它們的中斷向量位置了。原來中斷向量的位置是最后的決定因素!!!!
22、 上電初始化后AIRC初始化為0,為16個搶先式優先級,但是由于所有的外部通道中斷優先級控制字PRI_n為0,所以搶先式優先級相同,此時就不能嵌套了
23、 NVI中有ISER[2](Interrupt Set-Enable Registers),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分別為中斷使能和中斷失能寄存器,都是寫1來使能/失能中斷的。為什么寫1?為什么不采用一個寄存器而用兩個寄存器來表示中斷使能/失能狀態?由于硬件,寫0比較復雜,并且可能造成其他位的狀態改變,所以用1來表示打開或者關斷是比較合理的
24、 中斷標志位需要手動清除
25、 配置外圍器件的一般步驟:1、打開端口時鐘。2、定義初始化結構體并初始化。3、調用
26、串口的奇偶校驗:如果是奇偶校驗,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;這個數據的長度必須設定為9位!
27、ADC的規則組可以自定義轉換通道順序和轉換的通道個數。在實際應用中,有時候希望有一些特別的通道具有很高的優先權,需要在規則組進行轉換的時候強制打斷,進行另一個通道的轉換,這樣一組通道,叫做注入組。
28、定時器的輸出比較模式:Timing(凍結,什么都不做,普通定時),Active(OCxREF輸出高電平有效),Inactive(OCxREF輸出低電平),Toggle(比較成功后翻轉電平)。
29、STM32的定時器從0開始計數,滿足一些條件,給出標志位(比如匹配成功、時間更新、溢出等)然后從0開始計數。這一點和51不同。
30、OCx=OCxREF+極性
2、Stm32f10x.h相當于reg52.h(里面有基本的位操作定義),另一個為stm32f10x_conf.h專門控制外圍器件的配置,也就是開關頭文件的作用
3、 HSE Osc(High Speed External Oscillator)高速外部晶振,一般為8MHz,HSI RC(High Speed InternalRC)高速內部RC,8MHz
4、 LSE Osc(Low Speed External Oscillator)低速外部晶振,一般為32.768KHz,LSI RC(Low Speed InternalRC)低速內部晶振,大概為40KHz左右,提供看門狗時鐘和自動喚醒單元時鐘源
5、 SYSCLK時鐘源有三個來源:HSI RC、HSE OSC、PLL

6、 MCO[2:0]可以提供4源不同的時鐘同步信號,PA8
7、 GPIO口貌似有兩個反向串聯的二極管用作鉗位二極管。

8、 總線矩陣采用輪換算法對系統總線和DMA進行仲裁
9、 ICode總線,DCode總線、系統總線、DMA總線、總線矩陣、AHB/APB橋
10、在使用一個外設之前,必須設置寄存器RCC_AHBENR來打開該外設的時鐘
11、數據字節以小端存儲形式保存在存儲器中
12、 內存映射區分為8個大塊,每個塊為512MB
13、 FLASH的一頁為1K(小容量和中容量),大容量是2K。
14、 系統存儲區(SystemMemory)為ST公司出廠配置鎖死,用戶無法編輯,用于對FLASH區域進行重新編程。所以我們燒寫程序務必選擇BOOT1 = 0,這樣通過內嵌的自舉程序對FLASH進行燒寫,比如中斷向量表和代碼
15、 STM32核心電壓為1.8V
16、 STM32復位有三種:系統復位、上電復位、備份區域復位。其中系統復位除了RCC_CSR中的復位標志和BKP中的數值不復位之外,其他的所有寄存器全部復位。觸發方式例如外部復位、看門狗復位、軟件復位等;電源復位由于外部電源的上電/掉電復位或者待機模式返回。復位除了BKP中的寄存器值不動,其他全部復位;備份區域復位的觸發源為軟件復位或者VDD和VBAT全部掉電時。
17、 單片機復位后所有I/O口均為浮空輸入狀態
18、 68個可屏蔽中斷通道,16個可編程優先級,16個內核中斷,一共68+16=84個中斷。103系列只有60個中斷,107系列才有68個中斷
19、 系統啟動從0x00000004開始,0x000 0000保留
20、 (NestedVectored Interrupt Controller)NVIC嵌套向量中斷控制器,分為兩種:搶先式優先級(可嵌套)和中斷優先級(副優先級,不能嵌套)。兩種優先級由4位二進制位決定。分配下來有十六種情況:

21、0號搶先優先級的中斷,可以打斷任何中斷搶先優先級為非0號的中斷;1號搶先優先級的中斷,可以打斷任何中斷搶先優先級為2、3、4號的中斷;……;構成中斷嵌套。如果兩個中斷的搶先優先級相同,誰先出現,就先響應誰,不構成嵌套。如果一起出現(或掛在那里等待),就看它們2個誰的子優先級高了,如果子優先級也相同,就看它們的中斷向量位置了。原來中斷向量的位置是最后的決定因素!!!!
22、 上電初始化后AIRC初始化為0,為16個搶先式優先級,但是由于所有的外部通道中斷優先級控制字PRI_n為0,所以搶先式優先級相同,此時就不能嵌套了
23、 NVI中有ISER[2](Interrupt Set-Enable Registers),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分別為中斷使能和中斷失能寄存器,都是寫1來使能/失能中斷的。為什么寫1?為什么不采用一個寄存器而用兩個寄存器來表示中斷使能/失能狀態?由于硬件,寫0比較復雜,并且可能造成其他位的狀態改變,所以用1來表示打開或者關斷是比較合理的
24、 中斷標志位需要手動清除
25、 配置外圍器件的一般步驟:1、打開端口時鐘。2、定義初始化結構體并初始化。3、調用
26、串口的奇偶校驗:如果是奇偶校驗,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;這個數據的長度必須設定為9位!
27、ADC的規則組可以自定義轉換通道順序和轉換的通道個數。在實際應用中,有時候希望有一些特別的通道具有很高的優先權,需要在規則組進行轉換的時候強制打斷,進行另一個通道的轉換,這樣一組通道,叫做注入組。
28、定時器的輸出比較模式:Timing(凍結,什么都不做,普通定時),Active(OCxREF輸出高電平有效),Inactive(OCxREF輸出低電平),Toggle(比較成功后翻轉電平)。
29、STM32的定時器從0開始計數,滿足一些條件,給出標志位(比如匹配成功、時間更新、溢出等)然后從0開始計數。這一點和51不同。
30、OCx=OCxREF+極性
【內容聲明】本文刊載的所有內容,包括文字、圖片、音頻、視頻、軟件、程序、以及網頁版式設計等均在網上搜集。本文提供的內容或服務僅用于個人學習、研究或欣賞,以及其他非商業性或非盈利性用途,本網站不承擔任何法律責任。如涉及版權問題,請及時通知本網站刪除。

熱門物料
型號
價格
L7805CV-DG/線性穩壓器(LDO) | 0.5637 | |
AMS1117-3.3/線性穩壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0334 | |
LM358DR2G/運算放大器 | 0.35 | |
CJ431/電壓基準芯片 | 0.1147 | |
LM393DR2G/比較器 | 0.318 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 31.6 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 | |
B0505S-1WR3/隔離電源模塊 | 2.34 |