STM32F103ZE与SST39VF3201的IO连接如下:
STM32F103ZE SST39VF320X FSMC_A0 - PF5/FSMC_A22 A0-A22 PD14/FSMC_D0 - PD15/FSMC_D15 D0-D15 PD5/FSMC_NWE(WEN) WE# PB1/ADC_IN9/TIM3_CH4(SST_RSTN) RST# PF11(SST_WPN) WP# PD4/FSMC_NOE(OEN) OE# PD7/FSMC_NE1-NCE2(CEN) CE#
直接使用IO模拟控制时序可以存取到外部flash,所以硬件应该没有问题.但是参照固件库中FSMC的NOR Flash的例子,依照它的步骤却无法控制到外部Flash.跟固件库中的区别是,我的flash用NE1片选,它的用NE2,但这个应该不是问题吧.然后我用for循环改变AddressSetupTime,AddressHoldTime和DataSetupTime的值,然后读取,也得不到正确的值.My god!!!!
我程序的流程如下: 1.设置系统时钟,AHB=72Mhz 2.使能用到的IO控制器和FSMC控制器 3.配置IO,RST#和WP#设成IO推挽输出,其他设成复用推挽输出. 4.调用FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure)初始化FSMC_BCR1和FSMC_BTR1 5.使能Bank1的控制器 6.存取外部Nor Flash(失败)
是不是有什么步骤忽略掉了?拜请高人赐教. |