STM32硬件基础
目錄
- STM32f1庫函數開發學習
- 硬件基礎
- 一. 硬件資源
- 二. 部分拓展硬件
- 1. 啟動方式
- 2. JTAG
- 3. EEPROM
- 4. 液晶顯示
- 5. PS/2 接口
STM32f1庫函數開發學習
硬件基礎
一. 硬件資源
可能用到的硬件資源:
- HS0038 紅外接收
- DS18B20 數字溫度傳感器
- 24C02 EEPROM
- JTAG/SWD
- CH340G
- AMS1117-3.3 電源穩壓芯片
- PS/2 接頭
- SD卡
- W25Q64 64M FLASH 芯片
- NRF24L01 無線通信
芯片命名規則
- ST代表意法半導體
- STM32代表ST品牌Cortex-Mx系列內核(ARM)的32位MCU
- 下一個字母( F/L/W )
- F:通用快閃(FlashMemory)
- F0xx和F1xx系列為2.0~3.6V
- F2xx和F4xx系列為1.8~3.6V
- L:低電壓(1.65~3.6V)
- W:無線系統芯片,開發版
- F:通用快閃(FlashMemory)
- 103代表是增強型系列(101是基本型)
- Z是引腳數,(Z-144腳、E-100腳…)
- 接下來的字母代表Flash容量(E-512K、D-348K、C-256K…)
- 封裝:
T:LQFP
H:BGA
U:VFQFPN
Y:WLCSP/WLCSP64 - 溫度范圍:
6:-40℃-85℃ (工業級)
7:-40℃-105℃(工業級)
例如STM32F103RBT6:
圖片轉載自電子發燒友網:http://m.elecfans.com/article/597931.html
二. 部分拓展硬件
以STM32F103RCT6為例,并講解一部分外設應用:
STM32F103RCT6
———————資源———————
48KB SRAM
256KB FLASH
2 個基本定時器
4 個通用定時器
2 個高級定時器
2 個 DMA 控制器,共 12 個通道
3 個 SPI、2 個 IIC
5 個串口、1 個 USB、1 個 CAN
3 個 12位 ADC、1 個 12 位 DAC
1 個 SDIO 接口及 51 個通用 IO 口
1. 啟動方式
處理器基本原理都相似,簡單理解都是取指令、執行指令。從哪里取指令就涉及到存儲介質了,ROM和RAM其實就是兩種不同的存儲介質(一個可以掉電保存,一個掉電不保存),他們都可以做為存儲指令的介質。
關于ROM,RAM,FLASH等存儲介質有關內的介紹,參見下文:
ROM,RAM,FLASH等存儲介質的區別介紹
所謂啟動,一般來說就是指我們下好程序后,重啟芯片時,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存。
STM32有3種啟動方式,我們可以通過設置BOOT1和BOOT0引腳的狀態,來選擇在復位后的啟動模式。
-
用戶閃存存儲器啟動模式(Main Flash memory)
正常的用戶工作模式,通過jtag和swd模式進行下載程序,重啟后也直接從這啟動程序。 -
系統存儲器啟動模式(system memory)
從系統存儲器啟動,這種模式啟動的程序功能是由廠家設置的。 -
SRAM啟動(Embedded Memory)
SRAM,沒有程序存儲的能力,這個模式一般用于程序調試。
假如我只修改了代碼中一個小小的地方,然后就需要重新擦除整個Flash,比較的費時,可以考慮從這個模式啟動代碼(也就是STM32的內存中),用于快速的程序調試,等程序調試完成后,在將程序下載到SRAM中。
查看BOOT所在位置的原理圖:
Header 3X2 表示這是一個3X2的排針,那么我們只需要手動調整跳線帽就可以改變BOOT腳的高低電平,從而選擇啟動方式。
ISP下載,即In-System Programming,在線編程下載
選擇ISP下載模式的時候,需要:
BOOT0 = 1,BOOT1 = 0
啟動系統存儲器用于串口下載,然后復位,下載,下載結束還需要將BOOT0接GND,手動復位,這樣STM32才可以從Flash中啟動。
關于STM32啟動模式的詳細闡述,參見下文:
STM32啟動模式淺析
2. JTAG
SWD 和 JTAG 接口共用,而SWD 只需要最少 2 根線 (SWCLK 和 SWDIO) 就可以下載并調試代碼,跟串口下載代碼差不多,而且速度更快,可調試。
推薦使用SWD下載調試(詳見后期軟件調試內容),摒棄JTAG
關于調試方法的區別,參見下文:
淺論各種調試接口(SWD、JTAG、Jlink、Ulink、STlink)的區別
3. EEPROM
- EEPROM (Electrically Erasable Programmable read only memory),帶電可擦可編程只讀存儲器,是一種掉電后數據不丟失的存儲芯片,是用戶可更改的只讀存儲器(ROM),其可通過高于普通電壓的作用來擦除和重編程(重寫)。
- EEPROM 可以在電腦上或專用設備上擦除已有信息,重新編程。
- 一般用于即插即用(Plug and Play,PnP),自動配置低層計算機中的板卡和其他設備,然后告訴對應設備都做了什么。
- 區別于EPROM(Erasable Programmable ROM)芯片,EEPROM不需從計算機中取出即可修改,而EPROM一旦編程完成后,只能用強紫外線照射來擦除。
常用的24C02芯片:
- 容量:2Kbit,256字節
- A0-A3:器件地址線
- WP: 寫保護引腳
- SCL/SDA:二線串行接口,服從I2C總線協議
- VCC/GND:電源/地線
關于 Flash,RAM,ROM 存儲的基本區別,參見下文:
Flash,RAM,ROM區別
4. 液晶顯示
通用液晶接口TFT_LCD
- 使用TFTLCD時
- LCD_LED 對應 PC10
- LCD_CS 對應 PC9
- LCD _RS 對應 PC8
- LCD _WR 對應 PC7
- LCD _RD 對應 PC6
- LCD _D[17:1]對應 PB[15:0]
- 使用OLED時:
- OLED_CS 對應 PC9;
- OLED_RS 對應 PC8;
- OLED_WR 對應 PC7;
- OLED_RD 對應 PC6;
- OLED_D[7:0]對應 PB[7:0];
- 引腳注解:
- CS:片選信號
- RST(RES):硬復位
- DC:命令/數據標志 (0讀寫命令;1讀寫數據)
- SCLK:串行時鐘線,在 4 線串行模式下,D0 信號線作為串行時鐘線 SCLK
- SDIN:串行數據線,在 4 線串行模式下,D1 信號線作為串行數據線 SDIN
5. PS/2 接口
PS/2,一種鼠標和鍵盤的專用接口,是一種6針的圓型接口。PS/2接口是輸入裝置接口,而不是傳輸接口。所以PS2口沒有傳輸速率的概念,只有掃描速率
鼠標的PS/2的接口是綠色,而鍵盤的PS/2接口是紫色,二者不能接反。
原理圖:
PS/2只有四個腳有意義。它們分別是 Clock、Data、VCC 和 GND
DATA接口在使用的時候需要開啟內部上拉電阻
堅持寫作的第二天,繼續加油!
總結
- 上一篇: 蚂蚁金服分布式事务框架DTX源码学习
- 下一篇: red5 pro