習(xí)】嵌入式原理知識(一))
此部分內(nèi)容主要講述單片機(jī)的原理知識。配合嵌入式基礎(chǔ)功能實(shí)現(xiàn)??蛇M(jìn)一步的掌握單片機(jī)的知識。1. STM321.1 STM32的含義STMicroelectronics-意法半導(dǎo)體M-Micro Controller-微控制器32-32位1.2 STM32的型號型號可以參照STM32系列的單片機(jī)型號規(guī)格型號的含義2. STM32的引腳分布2.1 引腳的編排規(guī)則2.2 特殊引腳的功能與作用除了如下幾個(gè)引腳其他的均為普通引腳。其中STM32 的引腳大多是引腳復(fù)用物理上同一個(gè)引腳既可以當(dāng)普通 GPIO通用輸入輸出也可以開啟第二 / 第三功能復(fù)用功能圖中標(biāo)出的硬件專用引腳復(fù)用晶振、RTC、喚醒腳硬件結(jié)構(gòu)特殊原理圖必須留意圖沒標(biāo)的 PA/PB 引腳通用外設(shè)復(fù)用串口、定時(shí)器、SPI、I2C、ADC軟件才開啟默認(rèn)就是普通 GPIOVSS代表地的由來對于MOS管來說一般我們給D接正電壓給S接負(fù)電壓。所以VDD表示正電壓。VSS表示負(fù)電壓。2.3 普通引腳的命名規(guī)則普通引腳按照組分別命名以字母為組編號以數(shù)字為引腳編號。分為 GPIOA, GPIOB, GPIOC, GPIOD等等2.4 引腳的全部復(fù)用功能解釋補(bǔ)充符號全稱含義表里的例子SPower Supply電源 / 地腳不是信號腳只供電VBAT、VDD_1/2/3、VSS_1/2/3、VDDA、VSSAIInput only只能做輸入不能做輸出OSC_IN晶振輸入、NRST復(fù)位輸入、BOOT0啟動模式選擇OOutput only只能做輸出OSC_OUT晶振輸出I/OInput / Output雙向通用口既能讀也能寫所有 PAx / PBx / PCxFTFive Volt Tolerant5V 容忍引腳允許引腳上施加 5V 電壓不會損壞普通 I/O 只耐壓 3.3V接 5V 會燒常用于接 5V 傳感器、模塊、5V 串口PB2、PB10、PB11、PB12PB15、PA8PA12、PA13、PA14、PA15、PB3~PB9默認(rèn)復(fù)用功能與重定義功能步驟默認(rèn)復(fù)用PA9/PA10重定義PB6/PB7GPIO 時(shí)鐘__HAL_RCC_GPIOA_CLK_ENABLE()__HAL_RCC_GPIOB_CLK_ENABLE()AFIO 時(shí)鐘要開__HAL_RCC_AFIO_CLK_ENABLE()要開__HAL_RCC_AFIO_CLK_ENABLE()Remap 宏不用調(diào)必須調(diào)__HAL_AFIO_REMAP_USART1_ENABLE()TX 引腳PA9GPIO_MODE_AF_PPPB6GPIO_MODE_AF_PPRX 引腳PA10GPIO_MODE_AF_INPUTPB7GPIO_MODE_AF_INPUTUSART1 參數(shù)完全相同完全相同3. GPIO的四種輸出模式3.1 單片機(jī)結(jié)構(gòu)核心圖3.2 GPIO的8種工作模式分為輸出與輸入工作模式3.3 IO端口位的基本結(jié)構(gòu)這是普通引腳的結(jié)構(gòu)現(xiàn)在分別介紹首先是輸出控制3.3.1 推挽輸出模式根據(jù)CPU或者是片上外設(shè)的高低電平輸出控制MOS管的交替工作。這里使用P-MOS與N-MOS的目的也是為了在高低電平的情況只有一個(gè)MOS管處于工作狀態(tài)。3.3.2 開漏輸出模式首先了解對于一個(gè)MOS管具有漏極柵極以及源極。開漏模式就是漏極斷開的一種輸出模式。對應(yīng)到GPIO引腳就是上面的一個(gè)MOS管斷開處于不工作的狀態(tài)。當(dāng)把GPIO引腳設(shè)置為開漏模式。此時(shí)引腳只有低電平的驅(qū)動能力缺失高電平的驅(qū)動能力。當(dāng)輸出器為高電平此時(shí)處于高阻態(tài)??偟膩碚f對于推挽模式 寫1 為高電平 寫0 為低電平對于開漏模式 寫1 為高阻態(tài) 寫0 為低電平3.3.3 通用與復(fù)用的含義簡單來說通用就是通過CPU編程控制GPIO引腳對應(yīng)圖片中的上面一條路。對于復(fù)用就是通過其他片上外設(shè)控制GPIO引腳也就是下面一條路。舉例在通用模式下使用CPU控制GPIO引腳實(shí)現(xiàn)點(diǎn)亮小燈的功能。在復(fù)用模式下通過其他片上外設(shè)控制GPIO引腳比如通過串口控制引腳發(fā)送Hello字符串。4. IO的最大輸出速度4.1 IO最大輸出速度向IO交替寫0和1且輸出不失真波形正常輸出的最快速度4.2 上升下降保持時(shí)間下圖為高低電平的實(shí)際情況與理想情況4.3 IO速度的影響因素上升時(shí)間與下降時(shí)間的長短影響了IO引腳的速度。當(dāng)上升與下降時(shí)間很長的時(shí)候。保持時(shí)間就相比較之下變得很短。4.4 選擇IO速度的標(biāo)準(zhǔn)一般單片機(jī)具有低速中速與高速三個(gè)選項(xiàng)。分別對應(yīng)如下速率原則選擇滿足要求的最小值過于快的速度會導(dǎo)致耗電增加以及EMI問題4.5實(shí)例1.比如對于驅(qū)動LED燈。LED的臨界閃爍頻率為45.8Hz所以對此選擇2MHz即可。2.對于此芯片標(biāo)準(zhǔn)的波特率為8MHz。故選擇10MHz即可滿足要求。3.單片機(jī)上的USB接口選擇50MHz即可滿足要求。5. GPIO的四種輸出模式輸入模式參照下圖所示和前面的輸出模式相同。也具有復(fù)用模式對應(yīng)片上外設(shè)。經(jīng)過施密特觸發(fā)器后變?yōu)閿?shù)字量。施密特觸發(fā)器前為模擬量-實(shí)現(xiàn)大于某一個(gè)值為高值低于某一個(gè)值為低值在此區(qū)別狀態(tài)不變。整理上圖得到如下的簡化圖上下拉電阻給輸入提供一個(gè)默認(rèn)高低電壓。具有弱驅(qū)動能力。在理解上拉電阻與下拉電阻的作用的時(shí)候可以將施密特觸發(fā)器當(dāng)作是一個(gè)無窮大的電阻。此時(shí)便可以很方便的理解了。這是有輸入的時(shí)候這是沒有輸入的時(shí)候大電阻分壓大5.1 總結(jié)