在线时间2 小时
UID326055
ST金币0
蝴蝶豆0
注册时间2011-11-2
新手上路
- 最后登录
- 2020-7-28
|
a0a.1 0b0c
我用的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没有问题,已经正常读到。现在进行块擦除操作无法进行。
谢谢大家。 |
<
|