STM32單片機詳細教學(二):STM32系列單片機的介紹
大家好,今天給大家介紹STM32系列單片機,文章末尾附有本畢業設計的論文和源碼的獲取方式,可進群免費領取。
前言
STM32系列芯片是為要求高性能、低成本、低功耗的嵌入式應用設計的ARM Cortex M0, M0+, M3, M4和M7內核,按照內核架構分成不同的產品。其主流的產品有STM32F0、STM32F1和STM32F3;超低功耗產品STM32L0、STM32L1、STM32L4以及STM32L4+;性能產品STM32F2、STM32F4、STM32F7以及STM32H7。
在本文中以介紹筆者使用過的兩款單片機STM32F103ZET6以及STM32F407IG為主,此外還會介紹常用的STM32F407VET6、STM32F429IGT等單片機。
1、STM32F103ZET6
STM32F103X6是一款中等容量增強型,32位基于ARM核心的微控制器,它主要擁有以下特點:
1、內核:ARM32位CortexTM-M3 CPU,最高72MHz工作頻率,單周期乘法和硬件除法;
2、存儲器:64K或128K字節閃存成熟存儲器,高達20K字節SRAM;
3、時鐘、復位和電源管理:23.6V供電和I/O引腳,上電/斷電復位、可編程電壓監測器,416MHz晶體振蕩器,內嵌出廠調校8MHz振蕩器,產生CPU時鐘的PLL,帶校準功能的32KHz RTC振蕩器;
4、低功耗:睡眠、停機和待機模式,VBAT為RTC和后備寄存器供電;
5、2個12位A/D轉換器(16個輸入通道),速度為1us:轉換范圍0~3.6V,雙采樣和保持功能,溫度傳感器;
6、DMA(直接存儲器訪問):7通道DMA控制器,支持定時器、ADC、SPI、IIC和USART等外設;
7、多達80個快速I/O口:所有I/O口都可以映射到16個外部中斷,幾乎所有的端口均可容忍5V的輸入信號;
8、調試模式:串行單線調試(SWD)和JTAG接口;
9、多達7個定時器:3個16位定時器每個定時器有多達4個用于輸入捕獲/輸出比較/PWM/脈沖計數的通道和增量編碼器輸入,1個16位帶死區控制和緊急剎車用于電機控制的PWM高級控制定時器,2個看門狗定時器(獨立型和窗口型),24位自減型計數器(系統時間定時器);
10、多達9個通信接口:2個IIC接口,3個USART接口,2個SPI接口,1個CAN接口,1個USB2.0全速接口;
11、ECOPACK封裝
對于STM32F103系列的系統結構如下圖中所示,從這樣一個內部資源圖中可以很清楚地看到芯片內部的各種資源之間的連接關系,它們各自的功能如下:
1、ICode總線:將Cortex-M3內核的指令總線與Flash指令接口相連接,指令預取在這條總線上完成;
2、DCode總線:將Cortex-M3內核的DCode總線與Flash指令接口相連接,用以常量的加載和調試訪問;
3、Syetem總線:連接Cortex-M3內核的系統總線(外設總線)到總線矩陣,總線矩陣用以協調內核和DMA之間的訪問;
4、DMA總線:將DMA的AHB主控接口與總線矩陣相連,總線矩陣協調CPU的DCode和DMA到SRAM、閃存和外設的訪問;
5、總線矩陣:是用來協調內核System總線和DMA主控總線之間的訪問仲裁,仲裁使用輪換算法。總線矩陣包含4個驅動部件(DCode、System、DMA1和DMA2總線)以及4個被動部件(Flash接口、PSMC和AHB2APB橋)。AHB外設通過總線矩陣與系統總線相連,允許DMA訪問。
6、AHB/APB橋:戀歌AHB/APB橋在AHB和2個APB總線間提供同步連接。APB1操作速度限制為36MHz,APB2不限速(72MHz)。在每一次復位以后,所有除SRAM和Flash以外的外設都將被關閉,使用任意一個外設之前,必須要設置寄存器RCC_AHBENR來打開該外設的時鐘。
通過STM32內部的多通信接口可外接的設備有:
USART接口:ESP8266 WIFI模塊、GSM模塊、藍牙模塊、GPS模塊、指紋識別模塊等;
IIC接口:OLED屏、MPU6950、EEPROM等;
SPI接口:VS1053音頻模塊、串行Flash、電阻屏等;
AD/DA接口:光敏傳感器、溫濕度傳感器、煙霧傳感器、示波器等;
CAN接口:電子調速器、以及各種CAN設備。
2、STM32F407IG
STM32F407IG是一款帶DSP和FPU的高性能基礎款系列,32位基于ARM核心的微控制器,它主要擁有以下特點:
1、內核:ARM32位CortexR-M4 CPU with FPU,最高168MHz工作頻率,ART(自適應實時加速器),來自Flash存儲的允許0等待狀態(系統中五延時子程序時,所有輸入參數都可以在第一時間得到響應,保證系統及時處理外部事件);
2、存儲器: 高達1MB的Flash存儲,192+4KB的SRAM,以及包含64KB的CCM(核心耦合內存);
3、LCD并行接口,8080/6800模式;
4、時鐘、復位和電源管理: 1.83.6V供電電源和I/O,POR\PDR、PVD和BOR,426MHz晶體振蕩器,內部16MHz工廠調校的RC(精度為1%),具有校準的內部32KHz RC
5、低功耗: 睡眠、停機和待機模式,VBAT為RTC和后備2032位寄存器+4KB備份SRAM供電;
6、312位,2.4 MSPS A/D轉換器:高達24個通道和7.2 MSPS三重交錯模式;
7、2*12位D/A轉換器;
8、通用DMA:16-stream DMA具有FIFO和突發支持的控制器
9、多達17個定時器:最多12個16位和2個32位定時器,最高168MHz,每個定時器最多4 IC/OC/PWM或脈沖計數器和正交(增量)編碼器輸入;
10、調試模式:串行線調試(SWD)和JTAG,Cortex-MX嵌入式跟蹤MacrocellTM ;
11、多達140個具有中斷功能的I/O端口:高達136個快速I/O、頻率高達84MHz,多達138個5V耐壓I/O;
12、多達15個通信接口:多達3個IIC接口(SMBus/PMBus),多達4個USART/UART(10.5Mbit/s),7816接口LIN、IrDA及調制解調器控制,多達3個SPI(42Mbit/s)其中2個具有多路復用器,全雙工I2S,2路CAN接口(2.0B),SDIO接口;
13、網絡連接:USB2.0全速設備/主機/OTG帶有片上PHY的控制器,USB2.0高速/全速具有專用功能的設備主機/OTG控制器DMA以及片上全速PHY和ULPI,具有專用DMA的10/100以太網MAC支持IEEE 1588V2硬件MII/RMII;
14、8至14位并行攝像頭接口,最高可達54Mbytes/s;
15、真隨機數生成器;
16、CRC計算單元;
17、96位唯一ID;
18、RTC:亞秒級精度,硬件日歷。
可以看出STM32F4系列的單片機相較于F1具備更多的硬件資源,以及更高的晶振頻率,因此它也能夠實現更多更復雜的任務功能。
3、其它類型
對于其他類型的STM32系列,比較常見的有STM32F407VET6以及STM32F429IGT單片機,這兩款芯片的結構同屬于F4類型。因此在這里就不在過多解釋,主要介紹在淘寶中以這兩款芯片作為主控CPU所設計的開發板。
(1)淘寶上的某款基于F407的單片機開發板如下圖中所示,其具有板載SD卡座、RTC電池CR1220、無線通信NRF2401接口、支持FNsc液晶接口多用戶按鍵以及所有CPU-0引出的基本特性,其具體的參數如下表中所示:
內核 |
Cortex-M4 32-bit TISC |
特性 |
單周期DSP指令 |
工作頻率 |
168MH 210D MIPS/1.25 DMIP/MHz |
工作電壓 |
1.8~3.6V |
封裝 |
LQRP 100 |
存儲資源 |
512KB Flash 192+4KB SRAM |
資源 |
3SPI、3USART、2UART、3IIC、1FSMC、1SDIO、2CAN、1USB 2.0 FS/HS控制器(帶有專用DMA)、1USB HS ULPI(用于外接USB HS PHY)、110/100 Ethemet MAC、3A/D(12位,lus,分時24道)、2D/A(12位) |
(2)淘寶上正點原子的一款基于F429IGT芯片的單片機開發板如下圖所示,其板載STM32F429IGT6芯片,176角,1024K Flash,256K SRAM,資源有8個串口、16個定時器、3個ADC共24通道,2個DAC,2個CAN,SDIO,FSMC,I2C,I2S,SPI,網絡,DCMI攝像接口,百兆易以太網,全速USB OTG/高速USB OTG等。
完整代碼可進群免費領取!!!
嵌入式物聯網的學習之路非常漫長,不少人因為學習路線不對或者學習內容不夠專業而錯失高薪offer。不過別擔心,我為大家整理了一份150多G的學習資源,基本上涵蓋了嵌入式物聯網學習的所有內容。點擊下方鏈接,0元領取學習資源,讓你的學習之路更加順暢!記得點贊、關注、收藏、轉發哦!
- 贊