非常感谢版主无私的帮助,输出的时序确实没有问题,在访问奇地址时需要读两遍,所以波形才会象上图一样. 问题出在我对FSMC控制地址线的理解上,我的STM32的A0接的是SST39V3201的A0脚,我按照之前使用LPC2214的经验,认为A0脚将输出字节地址的最低位,所以例如我向外部flash的0x2000地址写0xAAAA,就应该从0x2000地址读出0xAAAA,但是读到的却一直是0xFFFF,一直不成功. 其实,STM32F103ZE的FSMC访问16位宽的外部flash时,它会自动将赋给它的地址的最低位省略,也就是地址右移一位再输出,输出的是16位的地址.所以要访问到外部flash中0x2000地址的值,赋给FSMC的地址应该人为先左移一位,使用0x4000就可以读出0xAAAA. STM32F103ZE的数据手册上相关的论述如图所示,我觉得ST应该要完善下文档吧,实在太不详细太不明不白了.最后再次感谢版主.
|