问答

汇集网友智慧,解决技术难题

wsdmzz

TA的家园币:167  

  • 求助 GD32F103RCT6 FMC写入flash 读出来全是ffff 是什么问题?

    GD32F103RCT6FMC写入flash读出来全是ffff是什么问题?#defineFMC_PAGE_SIZE((uint16_t)0x800)#defineFMC_WRITE_START_ADDR((uint32_t)0x0807F800)//最后一页2KB#defineFMC_WRITE_END_ADDR((uint32_t)0x0807FFFF)uint32_t*ptrd;uint32_taddress=0x00;uint32_tdata0=0x01234567U;/*计算有多少页要编程或擦除*/uint32_tPageNum=(FMC_WRITE_END_ADDR-FMC_WRITE_START_ADDR)/FMC_PAGE_SIZE;/*计算有多少字要编程或擦除*/uint32_tWordNum=((FMC_WRITE_END_ADDR-FMC_WRITE_START_ADDR)>>2);/*!\briefmainfunction\paramnone\param[out]none\retvalnone*/voidfmc_erase_pages(void){uint32_tEraseCounter;/*unlocktheflashprogram/erasecontroller*/fmc_unlock();/*clearallpendingflags*/fmc_flag_clear(FMC_FLAG_BANK0_END);fmc_flag_clear(FMC_FLAG_BANK0_WPERR);fmc_flag_clear(FMC_FLAG_BANK0_PGERR);/*erasetheflashpages*/for(EraseCounter=0;EraseCounter<PageNum;EraseCounter++){fmc_page_erase(FMC_WRITE_START_ADDR+(FMC_PAGE_SIZE*EraseCounter));fmc_flag_clear(FMC_FLAG_BANK0_END);fmc_flag_clear(FMC_FLAG_BANK0_WPERR);fmc_flag_clear(FMC_FLAG_BANK0_PGERR);}/*lockthemainFMCaftertheeraseoperation*/fmc_lock();}voidfmc_program(void){/*unlocktheflashprogram/erasecontroller*/fmc_unlock();address=FMC_WRITE_START_ADDR;/*programflash*/while(address<FMC_WRITE_END_ADDR){fmc_word_program(address,data0);fmc_halfword_program(address,data0);address+=2;fmc_flag_clear(FMC_FLAG_BANK0_END);fmc_flag_clear(FMC_FLAG_BANK0_WPERR);fmc_flag_clear(FMC_FLAG_BANK0_PGERR);}/*lockthemainFMCaftertheprogramoperation*/fmc_lock();}uint16_tgd32fmc_ReadWord(uint32_taddr){return*(volatileuint32_t*)addr;}主函数fmc_erase_pages();fmc_program();printf("%x\r\n",gd32fmc_ReadWord(0x0807f800));

    国产芯片

    2022-08-25 0