|
问题描述:STM32F407通过FSMC外设访问三星NAND FLASH,系统时钟是168MHz,始化外设GPI0D的PD0、PD1、PD3、PD4、PD6、PD11、PD12、PD14、PD15,还有PE的PE7、PE8、PE9、PE10等时钟及GPIO复用,设置FSMC对应的bank2或bank3,访问NAND FLASH ID 时,函数如下: void FSMC_NAND_ReadID(NAND_IDTypeDef* NAND_ID) { /* Send Command to the command area */ *(vu8 *)(NAND_FLASH_START_ADDR | CMD_AREA) = NAND_CMD_READID; /* Send Address to the address area */ *(vu8 *)(NAND_FLASH_START_ADDR | ADDR_AREA) = 0x00; /* Sequence to read ID from NAND flash */ NAND_ID->Maker_ID = *(vu8 *)(NAND_FLASH_START_ADDR | DATA_AREA); NAND_ID->Device_ID = *(vu8 *)(NAND_FLASH_START_ADDR | DATA_AREA); NAND_ID->Third_ID = *(vu8 *)(NAND_FLASH_START_ADDR | DATA_AREA); NAND_ID->Fourth_ID = *(vu8 *)(NAND_FLASH_START_ADDR | DATA_AREA); NAND_ID->Fifth_ID = *(vu8 *)(NAND_FLASH_START_ADDR | DATA_AREA); } 程序能够正常单步执行 *(vu8 *)(NAND_FLASH_START_ADDR | CMD_AREA) = NAND_CMD_READID; 单步执行*(vu8 *)(NAND_FLASH_START_ADDR | ADDR_AREA) = 0x00时,程序就有问题,不能正常执行,像是跑别的地方去了,停止仿真时,程序指向复位中断。 上述问题,不仅仅是访问NAND FLASH ID出现,执行擦除函数时也是这样,执行第一句函数正常,但是执行第二句就有问题,不知何故,请高手指教,谢谢。 |
我现在使用STM32F446ZET6芯片,外挂了16m的片外SDRAM。想把程序在SDRAM中运行,一直尝试没有成功,希望得到帮助,是否有相关的例子或参考的文档
MotorControl Workbench 6.4.1 生成 FOC 项目代码后运行死机。
STM32F405rgt6 I2S DMA输入会造成卡死,这个芯片有BUG
USBX在F407上创建CDC不能正常使用
STM32F427ZGTx内部RTC秒及亚秒同步问题
有没有STM32F405RG参考设计
LSM6DS3TR-C静止情况下使用MotionFX固件算出的欧拉角周期性异常跳动
全球论坛无法登录
STM32F429使用FMC接口扩展SDRAM
用STM32F407做U盘拖拽升级,目前BootLoader和实现U盘,后面就不知道怎么操作了。
微信公众号
手机版
在程序中,我定义比较大的数组做全局变量,这样会影响吗?该如何更改