你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32初探经验分享

[复制链接]
STMCU小助手 发布时间:2023-3-10 10:50
前言
5 |4 x1 e1 |% N" K( H由于个人原因已经有好长时间没搞了,最近工作需要,但是拿起32基本上都忘记差不多了,接下来一段时间将急中学习一下STM32的基础知识。以前是学习的库函数版本,有一定的基础,因此这次入手准备直接从头开始学习寄存器版本的程序,有助于更加深的理解STM中对寄存器的操作。, k, W: V% e! C9 l9 r
2 m; R. Y2 p) N; h( Z0 Y0 H1 z
重新拿出开发板,感到既熟悉又陌生,这篇博客先说一下学习准备,接下来的博客会更新后续实验。, _, N7 b  \7 p% ^& G5 N: |: s# m
! U: _% b4 n  m# I$ F
) _/ d: w/ ~1 d6 h
学习方法* [( O  I6 j' \1 L9 R8 a2 T6 u! h
一、学习准备

# u, u) P  ?2 r4 ^4 v- X2.1 C语言基础
; ?9 P, n5 V6 U+ T( W- v学习STM32前C语言必须得过关,否则对于代码的理解和32的学会很难。
) ~7 I- g( g; U- `5 d) W7 L
, g# Y& v: a& n+ ^1 G/ r
2.2 开发环境的搭建. O8 `7 ^: Y  [" T4 d
开发软件使用Keil uVision57 W- L- ^# v4 b7 X6 E
调试工具:JTAG、ST-LINK/V2: @8 h5 Z3 {" W' S

$ M! |1 u! F6 S) F# e( K下载程序:可以直接使用调试工具下载,也可以使用串口下载,串口下载的时候需要用到串口助手# K6 K' j+ o5 m- X1 v7 V: `

: r" M0 G5 U; L% d; Z& n2.3 寄存器版本代码说明3 ]2 ]/ |+ ], a( w. K2 n' ~
掌握库函数的基本配置方法。了解寄存器底层配置过程,以便深入了解STM32芯片本质。5 s2 T/ p/ A4 {0 W
4 S: p% m& a& \; n

8 p) c$ t9 i* U二、参考的资料(文档)  b3 U4 D3 D9 |6 ^6 ?" N/ Q; ]
芯片的内核(最底层):CM3/CM4权威指南(由ARM提供)
7 b: f% _# S  z! B% b芯片参考手册(功能寄存器特性描述):STM32F1/F4中文参考手册(由ST提供)0 u  m- R- M0 M" [
芯片数据手册(芯片电气参数及引脚说明):STM32F407ZGT6/ Z. ?* l) r2 `' V* w, E3 w
STM32F407开发指南—寄存器版本(这里使用的是正点原子的开发板)及其配套视频+ |* C  x6 O1 ]
开发板原理图:Explorer STM32F4_Vxx_SCH.pdf" {& r  @+ A9 R# s. G9 j+ N& }
ST官方资料下载地址
( j/ I# S. E8 d2 |1 b, F  \0 }, ^; E. `* ?% X
三、学习资源(硬件): [4 p5 d; ^9 r1 W8 C  x1 U
这里使用的是正点原子的STM32F4系列的探索者开发板,这里将开发板硬件资源做一下简单介绍,其具体介绍再不完全  手册前两章有详细介绍。大家做好也看一下。
) L; ]2 r; }" e+ c% f" Y1 C2 X6 j& x" K" Z" Y  Y6 {" a6 o
a67213abb5844ab5b75aea362616494c.png 6 ?, U# a  Y* @0 L$ }5 `

) t" N. m6 `! _+ V( w( \- O! Y* TALIENTEK 探索者 STM32F4 开发板板载主要资源如下:
5 J1 _7 Z5 C( r' |◆ CPU: STM32F407ZGT6, LQFP144, FLASH: 1024K=1M, SRAM: 192K;
: l$ o$ D. g; B( X9 W# z- }" C/ O' X◆ 外扩 SRAM: IS62WV51216, 1M 字节
* `7 Z3 M3 g' n1 T0 u! c# G; z; O- a◆ 外扩 SPI  FLASH: W25Q128, 16M 字节5 \2 p: u1 X( X( R* l
◆ 2 个状态指示灯(DS0:红色, DS1:绿色)
( V3 r( `9 `: w! D◆ 1 个红外接收头, 并配备一款小巧的红外遥控器6 p+ [0 |0 i* }  z
◆ 1 个 EEPROM 芯片, 24C02,容量 256 字节( W& r6 L+ h$ a1 U4 @% }; ]
◆ 1 个六轴(陀螺仪+加速度) 传感器芯片, MPU6050
- ?( t% ?" G. \8 l9 a/ z◆ 1 个高性能音频编解码芯片, WM8978
' P6 e6 J, J* `; q◆ 1 个 2.4G 无线模块接口,支持 NRF24L01 无线模块
% E5 }) S, f- Q: o8 J! ?! _◆ 1 路 CAN 接口,采用 TJA1050 芯片0 V& J. j# t& A9 R* m6 d
◆ 1 路 485 接口,采用 SP3485 芯片+ d6 j& E( n% u$ I: \- t  e
◆ 2 路 RS232 串口(一公一母) 接口,采用 SP3232 芯片- T# m! L  i& ]# x' @( _* D; K
◆ 1 路单总线接口,支持 DS18B20/DHT11 等单总线传感器
' G/ Z7 A! m9 k4 }/ H◆ 1 个 ATK 模块接口, 支持 ALIENTEK 蓝牙/GPS 模块
/ c5 Z; l; J% R: ^* T/ @% V$ Y; p/ k◆ 1 个光敏传感器) |) l1 A. G+ t: y
◆ 1 个标准的 2.4/2.8/3.5/4.3/7 寸 LCD 接口,支持电阻/电容触摸屏; g: L, p/ E, \" [
◆ 1 个摄像头模块接口1 f4 ^5 ^( j( V3 _8 L% |; N
◆ 1 个 OLED 模块接口
0 I7 w4 d' m9 I2 x◆ 1 个 USB 串口,可用于程序下载和代码调试(USMART 调试)# h# t6 n0 i$ U* e# R# l, |
◆ 1 个 USB SLAVE 接口,用于 USB 从机通信* }" a+ A$ Z. Q- i) Z
◆ 1 个 USB HOST(OTG)接口,用于 USB 主机通信
6 X6 z$ h$ u$ h% t6 `$ a5 H, v3 F◆ 1 个有源蜂鸣器
+ y$ n9 q% N; Z4 i◆ 1 个 RS232/RS485 选择接口
1 G& m1 t' k# q◆ 1 个 RS232/模块选择接口* s/ U5 K3 l3 \
◆ 1 个 CAN/USB 选择接口, M& ~3 d$ b5 Q) @) i
◆ 1 个串口选择接口
) T* }6 Q. V; B7 q2 z2 a7 m◆ 1 个 SD 卡接口(在板子背面)1 p0 ]) m4 n' S/ f: _; D
◆ 1 个百兆以太网接口(RJ45)# ?0 d' M- {+ _$ d/ Q/ `
◆ 1 个标准的 JTAG/SWD 调试下载口
5 F2 A6 [3 ^% G! u* y◆ 1 个录音头(MIC/咪头)
- R9 b! N& x6 Q* I( Y9 [$ E) y◆ 1 路立体声音频输出接口
$ h5 {* U/ p7 R2 r9 G) _+ ?◆ 1 路立体声录音输入接口
6 C  m8 b8 t* [! l) V* g9 c◆ 1 路扬声器输出接口,可接 1W 左右小喇叭) ]% V' i4 L/ `) G  p# n
◆ 1 组多功能端口(DAC/ADC/PWM DAC/AUDIO IN/TPAD)
+ s1 W. V( U. o" s( M0 k: A9 T/ h◆ 1 个参考电压设置接口
) D! q) J1 g9 g+ m; q◆ 1 个直流电源输入接口(输入电压范围: DC6~16V)0 \/ D# c# W3 x! Q3 E, V
◆ 1 个启动模式选择配置接口! q0 T& O5 X: G0 {$ e4 g% u

3 i5 {/ L* ~9 I, R# c# d. C; l
◆ 1 个 RTC 后备电池座,并带电池
0 o8 `. G+ [/ z, A+ |" n◆ 1 个复位按钮,可用于复位 MCU 和 LCD$ `; g/ ~9 b+ c
◆ 4 个功能按钮,其中 KEY_UP(即 WK_UP)兼具唤醒功能
, |- T* a0 Z0 w3 j4 B4 W. E◆ 1 个电容触摸按键
: M3 C1 L1 Z' K9 M; l5 d4 s2 R; I◆ 1 个电源开关,控制整个板的电源
& @6 ~( T) {% m) \- e◆ 独创的一键下载功能( L1 ^3 |7 u( I9 J+ q" r8 }5 s2 ~* r
◆ 除晶振占用的 IO 口外,其余所有 IO 口全部引出, U3 R$ p) s( Y# _& ]% `( D( J
) a$ x; R) a8 U$ X
STM32芯片学习内容
1 [& g0 \0 m7 l8 n9 H  ~一、学习的内容" v3 F8 T0 \) k# C
芯片的初步了解
+ k; s2 u$ ^; R5 l& T2 YSTM32F407用的是Cortex-M4内核,Cortex-M4采用的是ARMv7-ME架构* k, a, R7 L4 L( u* z
Cortex-M4内核,增加浮点运算和增强的DSP处理指令- S3 N/ Q2 x, p4 l) M
168MHz高速运行时210DMIPS的处理能力! Q6 ~3 I+ S. D& |2 @$ Y( e% \8 Z
32位定时器(M3是16位的定时器)
( b) B. Q: b' F: ESTM32家族:405.407.415.429.437, W0 |& s* n$ @! r/ q' a+ x6 H

5 `$ v# H' X* K1 X( A7 i! ?% e
二、基本资源
# @  C% t6 U& a基本外设:GPIO输入输出、外部中段、定时器(中断)、串口
# F8 Z# h+ o/ M/ [4 x基本外设接口:串口、SPI、I2C、ADC/DAC、WDG、FSMC、SDIO等
: G; b% n' J: N2 w$ _5 s高级系统功能:UCOS、FATFS、EMWIN等) Z2 W8 P% r! U: D4 Z
2.1 内核
% v* L) V/ R: P6 o32位 高性能ARM Cortex-M4处理器* J! h1 {4 x* A9 R- ^) v7 d. y
时钟:168M  支持FPU(浮点运算)和DSP指令. |  I5 z/ q. A
' A- x" U3 W1 u  |$ ~$ T
2.2 IO口  e$ ]1 P6 g/ _; c
STM32F4007ZGT6:144引脚 114个IO* h2 q! ?, ~3 s/ |2 `4 i' r; }4 v( z
大部分都支持5V(数据手册中FT的都支持,模拟通道不支持)
3 m" P% f( @) D2 `1 {支持调试:SWD和JTAG,SWD只要2条数据线
5 N. i; ?5 q! {* `6 q  `
. T0 `! T: g  c  f
2.3 存储容量: p9 S( ?9 s: W/ I
1024k flash   192  SRAM5 i: J+ X1 b& K8 Q& N+ ]: m) \

$ s% n$ y2 A* q
2.4 时钟和电源管理
# ^- e) _9 ~2 c! r( `4 m1.8v~3.6v电源和IO电压
2 h# @5 R7 e. _, P. S7 J上电/掉电复位、可编程的电压监控6 p8 w+ [' V6 y6 i% @) {
强大的时钟系统% [) m+ |( H5 Z% B+ q5 w" N4 S
4~26M的外部高速晶振9 R% q& f; E# V% L5 C4 r/ n
内部16MHz的高速RC振荡器$ g6 U8 k/ O6 U- O) T
内部32KHz低速RC振荡器,看门狗0 f; x/ w9 G+ c! f( h  E2 o% q
内部锁相环(PLL,倍频),一般系统时钟都是外部或内部高速时钟经过PLL倍频后得到
8 q8 K0 f# A/ h' U外部低速32.768K的晶振,主要做RTC时钟源" c- O$ g$ J0 j/ U% Q- f

' E3 N% Z2 D) @7 Z: _, [. B. K2.5 低功耗
! u& y2 ~6 ^* S睡眠,停止和待机三种低功耗模式
: b* Q; ]) O" P& G0 U) o2 o可用电池为RTC和备份寄存器供电, I- j9 P- |  t

5 a+ Z/ S' {  g9 l
2.6 AD、DA% {( X' q5 F5 M; U2 m) e* v
3个12位AD[24个外部测量通道]
4 a; n: E, O; g" x内部通道可用于内部温度测量
; v5 u0 R  n1 Y' V* y" A6 q4 U" E内置参考电压' L/ E+ g# s* E# K# S$ Y" H

+ J+ ]0 o* t  p1 I! p# B
2cdd02b6aac44612a2122b6002ceca5e.png 5 U9 q. e! x: S) C
7 U; \1 y" G) Z4 d& s- N1 \
2个12位DA/ S) n5 T1 [5 V

& J* Z6 M( b) N' D, n" f4 i2.7 DMA
! M; ^) `: V2 ?1 h1 Y3 b4 x8 ?/ d4 m16个DMA通道,带FIFO和突发支持
+ E: }$ J" k2 s- g. T# M- L3 d
+ [. Q/ W3 N5 n5 n' O
支持外设:定时器,ADC,DAC,SDIO,I2S,SPI,I2C,USART" P8 H1 i/ ?$ M- N- u
8 P. h. B( I& \/ @5 U
2.8 定时器
) n* {2 r7 ~8 I17个定时器; \& K! f8 ~0 b( i3 g; r6 O
10个通用定时器(TIM2和TIM5是32位)、2个基本定时器、2个高级定时器、1个系统定时器、2个看门狗定时器
% B6 Y: C) g( c$ n( S7 F) `
5 T) a: B! J" z) h8 p, _/ q
2.9 通信接口
# F  a4 {& V% [7 O. d9 z8 _+ X8 C
17个通信接口
. [/ S3 \6 _9 a/ R3个I2C接口、6个USART(串口)、3个SPI接口、2个CAN2.0接口、2个USB OTG、1个SDIO
5 P1 P; A  s+ z; O$ U; W8 R$ x2 ^( q) `' Y8 h2 m
总结$ o! d' b8 c/ v) }+ t2 k( Q
目前就先准备这么多,之后随着学习后面的学习博客也会随之更新。
3 o- }* M4 J* p# o* Y————————————————
7 G& I/ f) \5 _5 {3 O% _8 }版权声明:追逐者-桥
4 `2 s2 F5 a# z6 ~$ P+ I" U/ d9 d! e: i: w! ~* E1 t3 B
$ o% F+ E% G) s6 f! [  Q
赞 收藏 评论0 发布时间:2023-3-10 10:50

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版