if(FMC_READY == fmc_state){ FMC_CTL0 |= FMC_CTL0_PER; FMC_ADDR0 = page_address; FMC_CTL0 |= FMC_CTL0_START; /* wait for the FMC ready */ fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); /* reset the PER bit */ FMC_CTL0 &= ~FMC_CTL0_PER; }
时间: 2024-04-28 18:20:01 浏览: 110
vhdl.rar_FMC_nutaq_radio 420x
这段代码是在进行Flash写操作。如果FMC已经准备好(FMC_READY == fmc_state),则将FMC_CTL0寄存器的FMC_CTL0_PER位置为1,表示打开Flash编程使能。接着设置FMC_ADDR0寄存器的值为要编程的页地址。然后将FMC_CTL0寄存器的FMC_CTL0_START位置为1,开始Flash编程操作。此时需要等待FMC编程完成,即等待FMC_READY状态。如果等待超时,fmc_state将被设置为错误状态。如果FMC编程完成,则将FMC_CTL0寄存器的FMC_CTL0_PER位置为0,表示关闭Flash编程使能。
阅读全文