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

继上篇FSMC绪论,分析FSMC结构体函数

[复制链接]
一代睡神的崛起 发布时间:2018-12-7 09:01
4 typedef struct5 V' K5 A* H3 T( p3 [/ @
5 {( {  J4 \; w1 s7 `' c
6 uint32_t FSMC_Bank; /*设置要控制的 Bank 区域 */0 a4 `  h- C5 r" K3 B3 X
7 uint32_t FSMC_DataAddressMux; /*设置地址总线与数据总线是否复用 */
! l. `! I6 k7 h8 uint32_t FSMC_MemoryType; /*设置存储器的类型 */
2 Q0 t/ R% t6 d: p& n9 uint32_t FSMC_MemoryDataWidth; /*设置存储器的数据宽度*/0 K: Q$ b$ k% h2 f4 s3 k3 e
10 uint32_t FSMC_BurstAccessMode; /*设置是否支持突发访问模式,只支持同步类型的存储器 */
+ I# b; i# l& \2 y' b# h# e11 uint32_t FSMC_AsynchronousWait; /*设置是否使能在同步传输时的等待信号,*/1 D" K: {- W$ ?: r0 l
12 uint32_t FSMC_WaitSignalPolarity; /*设置等待信号的极性*/( I' ]) x$ c9 L/ e- _; j- V2 {
13 uint32_t FSMC_WrapMode; /*设置是否支持对齐的突发模式 *// ]  @( X0 k5 z
14 uint32_t FSMC_WaitSignalActive; /*配置等待信号在等待前有效还是等待期间有效 */. U% L$ l) s% ]$ n% B# l
15 uint32_t FSMC_WriteOperation; /*设置是否写使能 */
& P& [9 x9 E, R" v+ p16 uint32_t FSMC_WaitSignal; /*设置是否使能等待状态插入 */6 Z) u* y9 r8 X5 @' d& v# L
17 uint32_t FSMC_ExtendedMode; /*设置是否使能扩展模式 */6 [. A6 }8 D- p1 k1 @/ J6 ^
18 uint32_t FSMC_WriteBurst; /*设置是否使能写突发操作*/
& W% k# I6 C  g2 I5 W9 ?! J19 /*当不使用扩展模式时,本参数用于配置读写时序,否则用于配置读时序*/ - t. Z# H3 ]3 W4 ~
20 FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct; . J3 \" r; \6 H" Z
21 /*当使用扩展模式时,本参数用于配置写时序*/! c0 {- a0 Y4 T  R
22 FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct;2 n3 n7 o+ @2 }" w
23 }
" U! t5 o* h: g$ [
" P  p6 O* S, l% L8 R' Y

$ e0 z# Y: @- ^) u1 a只选以上某个节点来进行分析:! A+ a* c+ s9 r' ~. V- ?. l' F8 B4 H
FSMC_Bank:本成员用于选择 FSMC 映射的存储区域,它的可选参数以及相应的内核地址映射范围见表8 B' v1 V8 Q" B, i
可以输入的宏                         对应的地址区域
6 V/ H8 a1 x0 m+ X" Y, vFSMC_Bank1_NORSRAM1      0x60000000-0x63FFFFFF
: g1 R9 @4 a* s' h5 ]+ P! ~FSMC_Bank1_NORSRAM2      0x64000000-0x67FFFFFF
$ H3 c5 Z0 P# [1 Z. XFSMC_Bank1_NORSRAM3      0x68000000-0x6BFFFFFF8 Q" Q% w( }; u6 x- K
FSMC_Bank1_NORSRAM4      0x6C000000-0x6FFFFFFF
. k4 ?4 Q4 ^- y1 V  f' `' A
. q. [: V) F/ Z, F0 p

, c, B# l/ P. J3 j# ?3 JFSMC_BurstAccessMode:本成员用于设置是否使用突发访问模式(FSMC_BurstAccessMode_Enable/Disable),突发访问模式是指发送一个地址后连续访问多个数据,非突发模式下每访问一个数据都需要输入一个地址,仅在控制同步类型的存储器时才能使用突发模式.  C4 {. E8 [8 l) ]) f# X3 L: `- n
+ Z4 e0 r( u9 j1 M" {% h3 r: P
+ [/ t, Y, E. y8 u% i: A7 p' \5 R9 B
FSMC_AsynchronousWait:本 成 员 用 于 设 置 是 否 使 能 在 同 步 传 输 时 使 用 的 等 待 信 号(FSMC_AsynchronousWait_Enable/Disable),在控制同步类型的 NOR或 PSRAM时,存储器可以使用 FSMC_NWAIT 引脚通知 STM32 需要等待.
" s2 K. j% z6 Q/ O# k
, o7 G/ I3 u# A1 O- ~
# b2 @' z7 F& f( J+ c7 q
FSMC_WaitSignalPolarity本成员用于设置等待信号的有效极性,即要求等待时,使用高电平还是低电平(FSMC_WaitSignalPolarity_High/Low).0 a! j1 {  v2 d1 |+ i8 d

/ t: P" ~% Y+ \# p" [; M. h/ T

+ y+ g/ h- P  p( k- x$ qFSMC_WriteOperation这个成员用于设置是否写使能(FSMC_WriteOperation_ Enable /Disable),禁止写使能的话 FSMC 只能从存储器中读取数据,不能写入.
3 b7 e" y  F; d: ^; E
* I7 H$ \, f" h; l. R

; l9 v8 G1 h6 ^: p1 Q  S) ?FSMC_ExtendedMode:本成员用于设置是否使用扩展模式(FSMC_ExtendedMode_Enable/Disable),在非扩展模式下,对存储器读写的时序都只使用 FSMC_BCR 寄存器中的配置,即下面的FSMC_ReadWriteTimingStruct 结构体成员;在扩展模式下,对存储器的读写时序可以分开配置,读时序使用 FSMC_BCR 寄存器,写时序使用 FSMC_BWTR 寄存器的配置,即下面的 FSMC_WriteTimingStruct 结构体.
8 Y+ o8 L) t* D0 e; b$ |
3 z' J2 N6 [8 L4 q8 W% [

1 H4 |4 P( ?% N* n, s5 n1 ?. w二,关于用FSMC来扩展外部SRAM的操作,野火选择的型号为“IS62WV51216”的SRA的芯片为STM32扩展内存,由于笔者没有这元器件在这就不深究了。FSMC的基本内容就是这些了,当然如果大家需要深究就得去多查找下资料了,笔者水平和能力有限望大家批评指正。
6 v" G; q9 u; q; l4 \! @
% }: t9 s1 }) j) u9 `9 e. s
, \' e+ _. }! T, _3 U5 ^

4 Z5 a$ A4 N+ b* c" `5 W8 {
! W2 q: g+ z( T- T" Q% a

. K# @( p1 d# u$ x" ~

评分

参与人数 1 ST金币 +20 收起 理由
STMCU + 20

查看全部评分

收藏 评论2 发布时间:2018-12-7 09:01

举报

2个回答
sincomaster 回答时间:2018-12-7 14:42:37
谢谢分享
zhuzhe 回答时间:2020-3-30 11:14:53
谢谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版