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

STM32初探经验分享

[复制链接]
STMCU小助手 发布时间:2023-3-10 10:50
前言
4 R; P# I& m3 W6 {7 g6 }由于个人原因已经有好长时间没搞了,最近工作需要,但是拿起32基本上都忘记差不多了,接下来一段时间将急中学习一下STM32的基础知识。以前是学习的库函数版本,有一定的基础,因此这次入手准备直接从头开始学习寄存器版本的程序,有助于更加深的理解STM中对寄存器的操作。2 y) c4 H8 c+ L

) F: [3 g' \' L' D% Z/ \重新拿出开发板,感到既熟悉又陌生,这篇博客先说一下学习准备,接下来的博客会更新后续实验。
) g% _9 x9 T! ]/ |) k) A1 a6 [  a: |  `% C, [- E

' G' i/ c7 v( Y( l8 ?学习方法
  f( w0 {- D) G一、学习准备
+ A0 i. Q  ~. n4 m; I
2.1 C语言基础' y* u, F5 n2 ^, U( F2 @4 F9 k
学习STM32前C语言必须得过关,否则对于代码的理解和32的学会很难。+ {6 \" G4 _9 L( _+ q7 b, F2 S
7 V& F, v" q. ]0 ^: r
2.2 开发环境的搭建
$ o" h- v- L$ z, r1 [( Z开发软件使用Keil uVision5$ D5 x( [! h0 J) ]! ]4 B* H8 E
调试工具:JTAG、ST-LINK/V2
2 T) A0 v7 m3 K$ C( o6 X0 @  d1 R# J- i
下载程序:可以直接使用调试工具下载,也可以使用串口下载,串口下载的时候需要用到串口助手
! E  Y, `$ D" e0 G! ?
& e1 F. F7 ?8 P6 J2.3 寄存器版本代码说明8 A8 S' j  W$ x
掌握库函数的基本配置方法。了解寄存器底层配置过程,以便深入了解STM32芯片本质。
+ Y! P- f+ E) ?/ P9 U5 Q
2 K: C, R) Q8 }
' A  `+ a* H3 I4 {
二、参考的资料(文档)  O" h3 o# A' }4 U
芯片的内核(最底层):CM3/CM4权威指南(由ARM提供)0 e1 p% n, S  k/ I& g
芯片参考手册(功能寄存器特性描述):STM32F1/F4中文参考手册(由ST提供)
6 B+ v3 Y( \! [% H* Z7 s" w! o1 e7 I芯片数据手册(芯片电气参数及引脚说明):STM32F407ZGT6* }- U/ K; Y0 k5 F) J
STM32F407开发指南—寄存器版本(这里使用的是正点原子的开发板)及其配套视频5 f5 }6 u$ ^; `' E) v
开发板原理图:Explorer STM32F4_Vxx_SCH.pdf' M& L% `2 f4 l% x- C
ST官方资料下载地址9 |1 l( m6 ^$ W4 \6 M4 S0 C9 [

: B" h& c8 W9 [5 q. W& V+ @
三、学习资源(硬件): H! H/ b9 T1 O3 v
这里使用的是正点原子的STM32F4系列的探索者开发板,这里将开发板硬件资源做一下简单介绍,其具体介绍再不完全  手册前两章有详细介绍。大家做好也看一下。2 ^3 q. u5 w: z: a$ e/ _( c
) c; B2 @7 F5 n* S  [" g& Y4 W
a67213abb5844ab5b75aea362616494c.png
) N* d2 h6 Y& m3 o4 S
7 W& E1 ]# X) b1 d7 x8 sALIENTEK 探索者 STM32F4 开发板板载主要资源如下:
# I/ i! P2 p7 _- B# x* d) E◆ CPU: STM32F407ZGT6, LQFP144, FLASH: 1024K=1M, SRAM: 192K;7 O, x. Y9 s2 o4 x: G! X
◆ 外扩 SRAM: IS62WV51216, 1M 字节1 o& y7 A& e. r1 @; i7 i2 W/ P
◆ 外扩 SPI  FLASH: W25Q128, 16M 字节+ ~! _3 g' p. {0 E. Y3 w
◆ 2 个状态指示灯(DS0:红色, DS1:绿色)* j4 a' x1 H" n& V3 X
◆ 1 个红外接收头, 并配备一款小巧的红外遥控器
) p- n  Z0 z4 @0 N& k8 J+ ~+ ~◆ 1 个 EEPROM 芯片, 24C02,容量 256 字节! G8 v% _: y; Q9 F
◆ 1 个六轴(陀螺仪+加速度) 传感器芯片, MPU60509 H8 _& v+ ]- }8 F/ M$ y2 M
◆ 1 个高性能音频编解码芯片, WM8978
7 Z% P. C1 \- v& a3 a2 R3 N◆ 1 个 2.4G 无线模块接口,支持 NRF24L01 无线模块
% ?) m( I$ G1 s! B◆ 1 路 CAN 接口,采用 TJA1050 芯片
$ D& w+ C( M& P# K1 z% s◆ 1 路 485 接口,采用 SP3485 芯片/ |0 R8 v+ A8 P) C  e6 |* Z
◆ 2 路 RS232 串口(一公一母) 接口,采用 SP3232 芯片
$ L# j# l$ `$ v3 h7 H+ J* t5 v' H) |7 M◆ 1 路单总线接口,支持 DS18B20/DHT11 等单总线传感器# o% a7 B/ a0 L6 B5 ]: v7 c" l
◆ 1 个 ATK 模块接口, 支持 ALIENTEK 蓝牙/GPS 模块3 g! Z0 n2 A2 @1 h5 a3 k
◆ 1 个光敏传感器0 a: D6 H) x& r  H- Z$ E
◆ 1 个标准的 2.4/2.8/3.5/4.3/7 寸 LCD 接口,支持电阻/电容触摸屏, u  t2 S, ^3 N' C
◆ 1 个摄像头模块接口
) _3 a8 ~% W7 g# F7 o◆ 1 个 OLED 模块接口
" `$ I3 w% c* z◆ 1 个 USB 串口,可用于程序下载和代码调试(USMART 调试)
, I' }( P$ i1 y8 I1 L6 I◆ 1 个 USB SLAVE 接口,用于 USB 从机通信- p# ?$ D: _5 w9 o& G2 o6 N
◆ 1 个 USB HOST(OTG)接口,用于 USB 主机通信
2 |' e! Y; t6 R3 q  l5 w. k9 v◆ 1 个有源蜂鸣器/ T/ Q9 x9 n& a
◆ 1 个 RS232/RS485 选择接口) K. U. J( y; c. u! O
◆ 1 个 RS232/模块选择接口
$ v! X' S% K9 x& H: ^◆ 1 个 CAN/USB 选择接口+ f9 [; |" W0 S" w0 I; ^
◆ 1 个串口选择接口
* q$ d" l9 T, L( O8 V◆ 1 个 SD 卡接口(在板子背面)
4 Z" b" O: d, L◆ 1 个百兆以太网接口(RJ45)
4 I! ?, _1 ^) K& y! y◆ 1 个标准的 JTAG/SWD 调试下载口
: f. L5 a# ^% ]◆ 1 个录音头(MIC/咪头)) a. T" k0 l; ]
◆ 1 路立体声音频输出接口
3 i$ u% T4 L" S6 ^6 i5 q' Q9 f7 j◆ 1 路立体声录音输入接口
% \5 p5 y5 G/ T2 n◆ 1 路扬声器输出接口,可接 1W 左右小喇叭  }6 Z$ ^8 c; ^2 X0 S0 f  A
◆ 1 组多功能端口(DAC/ADC/PWM DAC/AUDIO IN/TPAD)0 D' P# I/ K2 K7 L5 {, X
◆ 1 个参考电压设置接口
& a- \4 l. F+ Z2 O2 q: M4 L◆ 1 个直流电源输入接口(输入电压范围: DC6~16V)+ U1 S( t+ V& t" k
◆ 1 个启动模式选择配置接口3 e" d9 a4 q; b. N! e/ ~

9 `" {# D) d, V
◆ 1 个 RTC 后备电池座,并带电池
! \. }' A5 ^6 v, N% f7 w1 X◆ 1 个复位按钮,可用于复位 MCU 和 LCD2 d/ }2 \% W  R+ H' J! Y' h
◆ 4 个功能按钮,其中 KEY_UP(即 WK_UP)兼具唤醒功能4 D! l; D: L$ \, C  T0 w! j
◆ 1 个电容触摸按键: \* e2 K) ?2 \" G0 O+ ^
◆ 1 个电源开关,控制整个板的电源' f1 Y. d0 B% ^* l" d/ p5 ?
◆ 独创的一键下载功能# l" L0 }* H- }* y+ R: S
◆ 除晶振占用的 IO 口外,其余所有 IO 口全部引出9 T9 K4 P) V* b- ~# R
3 i/ N9 o% \( K# @+ u1 ^- ?: L7 W
STM32芯片学习内容
  Q& l. x. Y. |$ C5 m1 r! d+ n一、学习的内容: O3 n5 G& d: d9 [. V/ q5 @- W! S
芯片的初步了解# q, w( P8 U1 o
STM32F407用的是Cortex-M4内核,Cortex-M4采用的是ARMv7-ME架构" {# b- ]1 n3 ^1 G! C, m6 l
Cortex-M4内核,增加浮点运算和增强的DSP处理指令
) R0 P! N5 F% X; u168MHz高速运行时210DMIPS的处理能力  e, W; P; k; W
32位定时器(M3是16位的定时器)
  ^7 ^# g* g1 q/ y0 T1 mSTM32家族:405.407.415.429.437$ O0 w/ e2 k* X
8 d$ J/ t+ e7 g4 ^, Q6 y9 N" {1 \
二、基本资源
8 x" k- F! Q% i* ]基本外设:GPIO输入输出、外部中段、定时器(中断)、串口
. x7 j! o1 j6 t$ a" o5 n; n% F基本外设接口:串口、SPI、I2C、ADC/DAC、WDG、FSMC、SDIO等
7 R! L# k) }% r) \# |" x$ q5 U高级系统功能:UCOS、FATFS、EMWIN等
/ v- ?; s' O' o; d7 m1 ~/ L
2.1 内核; D: y& x/ n5 ^9 K3 ~
32位 高性能ARM Cortex-M4处理器
+ r" i- I+ }- A3 I) F# A时钟:168M  支持FPU(浮点运算)和DSP指令
5 Z0 f  z* ~& J% z' i
! u6 v# {3 e. \. x
2.2 IO口
/ \$ d, @0 Q0 {- FSTM32F4007ZGT6:144引脚 114个IO- E, A# o, x% E8 G. f
大部分都支持5V(数据手册中FT的都支持,模拟通道不支持)0 c# n  G$ Q! i. A! r  L: H+ p: s7 m
支持调试:SWD和JTAG,SWD只要2条数据线5 u" s- g, l. |

6 c4 z4 T1 Z# `3 r' V
2.3 存储容量
! E3 {3 i# ]' o1024k flash   192  SRAM
( O2 i, m/ R5 f2 I5 D, q$ J. N) u/ i5 n  y7 C( P
2.4 时钟和电源管理
# P3 w+ |/ ]1 d$ ]% o. O1 O& ?1.8v~3.6v电源和IO电压
! z: M) V- K% T) M5 r& r$ N上电/掉电复位、可编程的电压监控" p6 n. `1 }7 L( _$ U- f
强大的时钟系统2 t8 d. h* `+ t+ Z
4~26M的外部高速晶振0 y: n5 f5 Q9 c2 j7 o
内部16MHz的高速RC振荡器
6 |' D: f4 B- f& f2 x/ F( v; O内部32KHz低速RC振荡器,看门狗
0 O* |, I6 h* w内部锁相环(PLL,倍频),一般系统时钟都是外部或内部高速时钟经过PLL倍频后得到. t% `/ o* O+ M* {: x  l
外部低速32.768K的晶振,主要做RTC时钟源
% f7 U: G+ x, d% L0 s8 e

2 O. i0 z1 `: }' e) P. ^2.5 低功耗+ u& G7 L, S- |
睡眠,停止和待机三种低功耗模式3 x) J! S0 p+ g3 |- T
可用电池为RTC和备份寄存器供电
$ r3 g6 x' N' w5 I+ O5 j; U5 H' M7 M1 f
2.6 AD、DA; {5 B! i/ q8 R% v5 n
3个12位AD[24个外部测量通道]
$ d8 H6 {. T* c$ J& `4 w内部通道可用于内部温度测量
; B' L0 p( M9 }$ d0 l8 g内置参考电压  u4 T5 q! D& e% F2 X+ g
: O4 f3 \: m/ \" Y# D
2cdd02b6aac44612a2122b6002ceca5e.png
" j9 b7 g# o1 f2 T5 o. x9 Y$ x/ B2 r( I
2个12位DA
$ [3 y% ^7 C3 v) X
3 i. B0 f4 c$ Y& J6 `: z' ]
2.7 DMA) h! y" Z& l9 \* B
16个DMA通道,带FIFO和突发支持
: u7 E( b( J9 c( w

  [% `# |; j9 O$ h# K! t( {& X支持外设:定时器,ADC,DAC,SDIO,I2S,SPI,I2C,USART* L$ R4 t( E, w0 ]; t( p( Q2 U  y2 n
" |1 I) A& o. \# u) T7 c
2.8 定时器' p: }0 X% n9 p* p% T/ u3 u
17个定时器
0 M5 h+ i$ t; p' f+ s+ g10个通用定时器(TIM2和TIM5是32位)、2个基本定时器、2个高级定时器、1个系统定时器、2个看门狗定时器6 R- D/ Y8 x! [: x9 P* c

- y9 b$ \6 M# l9 w& M: R  G! ~2.9 通信接口

- X# r5 }; B2 s! @8 p- B+ f9 a17个通信接口
# [' f: ^5 T$ X/ }# N5 |3个I2C接口、6个USART(串口)、3个SPI接口、2个CAN2.0接口、2个USB OTG、1个SDIO5 j2 E+ |3 b9 H7 X
! T# ?( A( J& Q$ B
总结
+ x+ ~: p2 R& G2 `9 ?目前就先准备这么多,之后随着学习后面的学习博客也会随之更新。0 {1 f3 Y; ~2 i6 j3 E7 Z
————————————————; W' Q7 ?2 ?4 E  C, J$ `9 V5 D
版权声明:追逐者-桥
7 B* M( u# g3 c4 l
% r9 q) h% ?& r5 X7 R5 k& V/ `2 _5 l4 E* n" @$ a
赞 收藏 评论0 发布时间:2023-3-10 10:50

举报

0个回答

所属标签

相似技术帖

官网相关资源

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