论坛
进入论坛
商行-迷你打铁铺
技术讨论区
|
上位机软件开发
|
应用技术讨论区
|
免费工具使用讨论
|
松鼠--开发板
|
豆皮--开发板
|
思维--可编程控制器
|
开源单端反激电源
|
项目综合讨论区
|
作品交流、逻辑电路、无刷驱动
|
精品下载区
转至论坛
你的位置:
StmFans思蜕盟 OPELC 自由电子联盟
>>
论坛
>>
技术讨论区
>>
查看帖子
外扩RAM的问题
发布: 2009-7-03 20:36 | 作者:
SwallowF
| 来源: StmFans思蜕盟 OPELC 自由电子联盟
我玩的是EK-STM3210E
上外外扩了一个16位D RAM 我以字和半字访问都没问题
但是以字节方式访问就出问题了
16位的外部存储器不能以字节方式访问吗
guoyin
(2009-7-04 19:06:47)
你是用FSMC方式外扩的吗,那应该是参数没有设置对吧!
guoyin
(2009-7-04 19:08:01)
FSMC_NORSRAMTimingInitTypeDef p;
p.FSMC_AddressSetupTime = 1; /*ADDSET 地址建立时间*/
p.FSMC_AddressHoldTime = 1; /*ADDHOLD 地址保持时间*/
p.FSMC_DataSetupTime = 20; /*DATAST 数据建立时间*/
p.FSMC_BusTurnAroundDuration = 0; /*BUSTURN 总线返转时间*/
p.FSMC_CLKDivision = 0; /*CLKDIV 时钟分频*/
p.FSMC_DataLatency = 1; /*DATLAT 数据保持时间*/
p.FSMC_AccessMode = FSMC_AccessMode_A; /*ACCMOD FSMC 访问模式*/
下面这段是对控制方式的设置----FSMC_DCR的设置
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
/*选择设置的BANK及片选信号*/
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
/*设置是否数据地址总线分时复用*/
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
/*设置存储器类型*/
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
/*设置数据宽度*/
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
/*设置是否使用迸发访问模式(应该就是连续读写模式吧),*/
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
/*设置WAIT信号的有效电平*/
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
/*设置是否使用环回模式*/
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
/*设置WAIT信号有效时机*/
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
/*设定是否使能写操作*/
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
/*设定是否使用WAIT信号*/
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
/*设定是否使用单独的写时序*/
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
/*设定是否使用异步等待信号*/
FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
/*设定是否使用迸发写模式*/
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
/*设定读写时序*/
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
}
我也来说两句
查看全部回复
网络资源
思蜕盟QQ群: 65081316(满) 68584951(满) 61958672(空) 59804115(空)
最新发表
binglin
UM0458 User manualu_sn250_rev1e.pdf
binglin
ZigBee module SPZB250
binglin
ZigBee SN250 datasheet
binglin
SN260数据手册
zcl
谁有关于学习SN260的资料啊?
zcl
谁有关于学习SN260的资料啊?
binglin
正在编程中的串口调试助手(DELPHI版)
armcu
这个现象是怎么回事呢?
zzzzzz
关于上传图片的问题
p.FSMC_AddressSetupTime = 1; /*ADDSET 地址建立时间*/
p.FSMC_AddressHoldTime = 1; /*ADDHOLD 地址保持时间*/
p.FSMC_DataSetupTime = 20; /*DATAST 数据建立时间*/
p.FSMC_BusTurnAroundDuration = 0; /*BUSTURN 总线返转时间*/
p.FSMC_CLKDivision = 0; /*CLKDIV 时钟分频*/
p.FSMC_DataLatency = 1; /*DATLAT 数据保持时间*/
p.FSMC_AccessMode = FSMC_AccessMode_A; /*ACCMOD FSMC 访问模式*/
下面这段是对控制方式的设置----FSMC_DCR的设置
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
/*选择设置的BANK及片选信号*/
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
/*设置是否数据地址总线分时复用*/
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
/*设置存储器类型*/
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
/*设置数据宽度*/
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
/*设置是否使用迸发访问模式(应该就是连续读写模式吧),*/
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
/*设置WAIT信号的有效电平*/
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
/*设置是否使用环回模式*/
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
/*设置WAIT信号有效时机*/
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
/*设定是否使能写操作*/
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
/*设定是否使用WAIT信号*/
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
/*设定是否使用单独的写时序*/
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
/*设定是否使用异步等待信号*/
FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
/*设定是否使用迸发写模式*/
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
/*设定读写时序*/
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
}