完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题描述: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出现,执行擦除函数时也是这样,执行第一句函数正常,但是执行第二句就有问题,不知何故,请高手指教,谢谢。 |
|
相关推荐
1个回答
|
|
首先,您需要确保已经正确配置了FSMC的时钟、GPIO复用和初始化了NAND FLASH。以下是一些关键步骤: 1. 配置系统时钟:确保HCLK和内存时钟已经设置为合适的值。 2. 配置GPIO复用:根据您的描述,您已经配置了GPIO复用,但请确保所有与NAND FLASH连接的引脚都已正确配置。 3. 初始化FSMC:设置FSMC的时钟、地址和数据线,以及NAND FLASH的访问模式(如同步或异步)。 4. 初始化NAND FLASH:发送适当的命令以初始化NAND FLASH,例如发送NAND_CMD_READID以读取设备ID。 关于您提供的函数,它看起来是用于读取NAND FLASH的设备ID的。但是,函数中的代码不完整,我将为您提供一个更完整的示例: ```c void FSMC_NAND_ReadID(NAND_IDTypeDef* NAND_ID) { /* Send Command to the command area */ *(vu8 *)(NAND_FLASH_START_ADDR | CMD_AREA) = NAND_CMD_READID; /* Wait for the NAND FLASH to process the command */ // 这里可以添加一个延时或检查NAND FLASH的状态寄存器以确保命令已被处理 /* Read the NAND FLASH ID */ NAND_ID->Maker_Id = *(vu8 *)(NAND_FLASH_START_ADDR | 0x00); NAND_ID->Device_Id = *(vu8 *)(NAND_FLASH_START_ADDR | 0x01); NAND_ID->Third_Id = *(vu8 *)(NAND_FLASH_START_ADDR | 0x02); NAND_ID->Fourth_Id = *(vu8 *)(NAND_FLASH_START_ADDR | 0x03); } ``` 请注意,您可能需要根据您的具体硬件配置和NAND FLASH型号调整上述代码。此外,确保在读取ID之前已经正确初始化了FSMC和NAND FLASH。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:50 , Processed in 0.918296 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号