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位二進位制位決定。分配下來有十六種情況:
69、usart可以操縱spi裝置。不過最大頻率只有4.5mhz
70、使用i/o口時應該注意的問題
71、adc的vref+和vdda與vss,vref-一定要加高質量的濾波電容,切靠近微控制器。
72、adc分為規則組和注入組,前者有16個通道,後者有4個通道。並且16個通道公用乙個數值暫存器,注入組的4個通道分別有乙個數值暫存器。
73、取樣頻率越高,輸入阻抗要求越小。
74、stm32進入中斷的最短週期為6個週期
75、
76、
77、fsmc,即靈活的靜態儲存控制器。能夠與同步或非同步儲存器和16位pc儲存器卡介面,stm32的fsmc介面支援包括sram、nandflash、norflash和psram等儲存器。
78、平時所說的u盤裡的flash儲存器有兩種型別:nandflash和nor flash。
nand flash
不能直接執行裡面的**
寫入和擦除速度快
讀取速度稍慢
擦寫週期100萬次
成本低,容量高
一般為序列介面
nor flash
可以直接執行裡面的**
寫入和擦除速度慢
讀取速度稍快
擦寫週期10萬次
成本高,容量低
有sram介面
79、tft在操作時,可以當作外部sram來操作,這樣的話,如果微控制器有fsmc介面,就可以使用norflash的sram介面去控制,速度非常快。
80、stm32的的fsmc有4個256mb的儲存塊,一共定址1gb的外部儲存器空間。
81、在stm32內部,fsmc的一端通過內部高速匯流排ahb連線到核心cortex-m3,另一端則是面向擴充套件儲存器的外部匯流排。核心對外部儲存器的訪問訊號傳送到ahb匯流排後,經過fsmc轉換為符合外部儲存器通訊規約的訊號,送到外部儲存器的相應引腳,實現核心與外部儲存器之間的資料互動。
82、fsmc中的dataset和addset的設定需要參看外部儲存器的時序圖來確定。一般而言,dataset指的是資料建立時間,也就是讀/寫訊號開始到讀/寫訊號停止(上公升沿儲存資料)的持續時間。(一般來說寫比讀快!)。而addset指的是位址建立時間,指的是片選之後到讀/寫操作之前的時間,這是針對sram來說的,如果操縱的是tft,不存在位址線,所以此時的addset就是讀/寫訊號結束到rs電平的轉換時間。
83、
84、
85、fsmc的三個配置暫存器:fsmc_bcrx(片選控制配置)、fsmc_btrx(片選時序)、fsmc_bwtrx(片選寫時序)。
86、 rtc時鐘配置必須要用到bkp暫存器,bkp暫存器在微控制器復位、電源復位、待機喚醒模式下是不會更改值的,他的供電由vdd供電,vdd被切斷後自動切換至外部的vbat供電。
87、 要修改bkp暫存器的值,必須取消其寫保護的標誌。bkp暫存器在上電時自動寫保護。
88、 stm32有三種省電模式: 三種省電模式中,耗電量從上到下依次降低,待機模式的電流僅為2ua。
89、 從待機模式中喚醒微控制器等效於讓微控制器復位,但是電源暫存器的值會有乙個標誌位指示微控制器是被喚醒的,不是被復位的。
90、 adc的時鐘不要超過14mhz,否則轉換精度會下降。最大轉換速率為1mhz,即轉換週期為1us(14mhz,取樣週期為1.5個adc時鐘)
91、 tcovn=取樣時間+12.5個週期。取樣時間盡量選長一點,這樣精度高一些,但是轉換速率下降,這也是有利必有弊。
92、
93、 拿arm7tdmi來說,t代表thumb指令集,d是說支援jtag除錯(debugging),m意指快速乘法器,i則對應乙個嵌入式ice模組。
94、 mmu作為嵌入式處理器與應用處理器的分水嶺標誌à具有記憶體管理單元的嵌入式處理器可以定位為應用處理器。這麼說m系列和a系列的處理器的區別在於a系列的處理器具有mmu單元可以進行記憶體模組的管理。
95、arm處理器有兩種狀態:arm狀態和thumb狀態。
96、 這張圖說明了一切:thumb2指令集做了一件很偉大的事情:將16位和32位的指令集融為一體,相容性非常強!(這麼說cm3不支援某些32位arm指令集??)
97、
98、msp是系統復位後使用的堆疊指標,psp由使用者的**使用。兩個堆疊指標為4位元組對齊!!
99、在arm程式設計領域中,凡是打斷程式執行的事件,統稱為異常(exception)。
100、 因為存在lr(鏈結暫存器),所以可支援1級的子程式呼叫而不用壓棧到記憶體,大大提高了執行速度。—à這就是說,我們在程式設計的時候,一級呼叫是不會耗費太多時間的,除非是二級呼叫!
101、 處理器有兩種操作模式:handler模式和執行緒模式。處理器也有兩種特權分級:特權級和使用者級。 這張圖說明了一切:復位進入特權級執行緒模式,如果有異常,進入特權級的handler模式處理異常或中斷例程,然後返回至特權級執行緒模式。通過修改control暫存器可以進入使用者級執行緒模式。
102、 兩個高階定時器tim1和tim8是掛接在apb1匯流排上
103、 stm32的外部中斷是以組來區分的,也就是說pa0,pb0,pc0微控制器是無法區分其中哪個觸發的中斷à均為exit0線中斷服務例程。所以,外部中斷支援16路的中斷解析度。從另乙個方面來講,我們可以設定gpio_extilineconfig(gpio_portsourcegpiox, gpio_pinsourcex);來開通中斷線實現組內的不同中斷。
104、 dac有兩個暫存器,乙個是dhr(data holdingregister)資料保持暫存器,乙個dor(data output register)資料輸出暫存器。真正起作用的是dor暫存器,該暫存器把值給數模轉換發生單元輸出以vref+為參考電壓的電壓值。如果是硬體觸發轉換,系統將在1個abp時鐘週期後把值給dor,如果是軟體觸發轉換,時間為3個apb時鐘週期。然後,均等待tsetting時間(typical為3us,max為4us)後真正輸出電壓值。
105、 dac分8位模式和12位模式,其中後者可以選擇左右對齊
106、 dma仲裁器分為軟體和硬體兩種。軟體部分分為4個等級,分別是很高優先順序、高優先順序、中等、低。硬體部分由通道的大小來決定優先順序,越低優先順序越高。
107、 dma有乙個實時的傳輸資料量暫存器叫做dma_***tr,最大值為65535,存放的是當前傳輸所要傳輸的資料量。當資料量變為0時,表明傳輸完成。
108、 can匯流排(controllerarea network)。can控制器根據兩根線上的電位差來判斷匯流排電平,匯流排電平又分為顯性電平和隱性電平,二者必居其一。
109、 can匯流排具有6個特點:1:多主控制(掛接在匯流排上的所有裝置均可以成為主裝置,並且裝置id是用來決定裝置的優先順序,沒有裝置位址概念),2:系統若軟性(沒有裝置位址概念),3、通訊速度較快,通訊距離較遠(1mbps下40m,5kbps下10km),4、具有錯誤檢測、錯誤通知(通知其他裝置)和錯誤恢復功能(強制結束傳送,重**送接收錯誤的資訊。),5、故障封閉,當匯流排上的裝置發生連續故障錯誤時,can控制器會把改控制器踢出匯流排。6、連線節點多。理論上可以無限制載入,但是受到時間延遲和電氣負載的限制,實際數目是有限制的。降低傳輸速度可以適當增加可掛接負載個數。
110、 can協議有兩個標準,iso11898(針對125kbps~1mbps的高速速率)和iso11519-2(125kbps以下的低速速率)
111、
112、 can協議的有5種型別的幀:資料幀、遙控幀、錯誤幀、過載幀、幀間隔。其中前兩種幀有標準格式(11位id)和擴充套件格式(29位id)。
113、 資料幀構成:
(1) 幀起始。 表示資料開的段幀起始。
(2) 仲裁段。 表示該幀優先順序的仲裁段。
(3) 控制段。 表示資料的位元組及保留位段。
(4) 資料段。 資料的內容,一幀可傳送0~8個位元組的資料。
(5) crc段。 檢查幀的傳輸錯誤段。
(6) ack段。 表示確認正常接收的段。
(7) 幀結束。 表示資料的段幀結束。
微控制器學習(一) 微控制器基礎 STM32
io四種輸入工作模式 io四種輸出工作模 stm32有8個16位定時器 stm32具有強大的異常響應系統,它把能夠打斷當前 執行流程的事件分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,編號為 3 6的中斷向量定義為系統異常,編號從7到19的為外部中斷。中斷向量控...
STM32微控制器PWM輸出學習
pwm原理 pwm表示脈衝寬度調製,它是一系列脈衝,這些脈衝將以方波的形式出現。也就是說,在任何給定的時間點,波型要麼是高電平或者是低電平。對於pwm訊號我們需要關注兩個與之相關的重要引數,乙個是pwm占空比,另乙個是pwm訊號的頻率。占空比 接通時間 接通時間 斷開時間 也就是說,通過控制從0 到...
微控制器入門學習七 STM32微控制器學習四 按鍵輸入
按鍵輸入使用gpio的讀取資料功能,用到的庫函式是gpio readinputdatabit 使用的暫存器是gpiox idr。使用的板子的按鍵原理圖如下 從原理圖可看出wk up是高電平有效 key0 key1 key2是低電平有效。結合stm32原理圖看這四個按鍵分別接到了哪些引腳上 上面兩個圖...