求大神帮我看看这个问题是真么回事?怎样解决?

2019-03-23 19:13发布

大家有没有遇到过这个问题啊,程序在擦除Flash时停在了
HardFault_Handler
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
这里,找了好长时间发现地址为0x080x0800018CF,但这个是库函数,怎么解决啊求大神指点啊,做等,急急急~~~~ 11.jpg (278.19 KB, 下载次数: 2) 2013-5-30 11:39 上传 点击文件名下载附件 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
Li_Lei
2019-03-24 08:46
你的地址要和1K对齐,不知道你擦除别的地址有没有问题?

#define FLASH_PAGE_SIZE                1024

volatile FLASH_Status FLASHStatus;

void Flash_Erase(u32 StartAddr,u32 Size)
void Flash_Erase(u32 StartAddr,u32 Size)
{
        u32 Page=Size/FLASH_PAGE_SIZE;
        FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
        FLASHStatus = FLASH_COMPLETE;
          FLASH_Unlock();
          while ((Page--) && FLASHStatus == FLASH_COMPLETE)
          {
                  FLASHStatus = FLASH_ErasePage(StartAddr);
                StartAddr+=FLASH_PAGE_SIZE;
        }
        if (FLASHStatus != FLASH_COMPLETE)
                while (1);
        FLASH_Lock();
}

一周热门 更多>