关于如何进行K9F5616flash的块擦除操作
我用的STM32F103片子,按照实验例程里的程序进行块擦除操作。uint32_t FSMC_NAND_EraseBlock(NAND_ADDRESS Address)
{
*(vu16 *)(NAND_FLASH_START_ADDR | CMD_AREA) = NAND_CMD_ERASE0;
*(vu16 *)(NAND_FLASH_START_ADDR | ADDR_AREA) = ADDR_1st_CYCLE(ROW_ADDRESS);
*(vu16 *)(NAND_FLASH_START_ADDR | ADDR_AREA) = ADDR_2nd_CYCLE(ROW_ADDRESS);
*(vu16 *)(NAND_FLASH_START_ADDR | CMD_AREA) = NAND_CMD_ERASE1;
while( GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_6) == 0 );
return (FSMC_NAND_GetStatus());
}
程序如上,在发送完块擦除命令后,等待R/B引脚变高,然后读FLASH的状态,每次读到的都是忙,并且I/O0位为“1”,最后都是超时失败。
FLASH是16位数据I/O口的,我读FLASH的ID没有问题,已经正常读到。现在进行块擦除操作无法进行。
谢谢大家。
页:
[1]