OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3540|回复: 1

stm32mini flash操作问题

[复制链接]

13

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-10-6
在线时间
13 小时
发表于 2016-10-25 17:11:46 | 显示全部楼层 |阅读模式
4金钱
原子哥,每次下载flash操作代码时,第一次按key0写数据时程序就死了,复位后就可以写flash了,而且复位后写flash就没有问题了,一直搞不清楚为什么程序刚下进去写flash会死机,复位后写flash才可以希望原子哥 能抽点时间帮我看看,谢谢了

代码:
void flash_write_check(u32 addr,u16 *p,u16 num)
{
        u16 i;
        u8 sector;
        u16 pianyi;
        u16 shengyu;
        addr=addr-0x08000000;
        sector=addr/2048;
        pianyi=(addr%2048)/2;
        shengyu=1024-pianyi;
        delay_ms(50);
        FLASH_Unlock();

        if(num<=shengyu)
        shengyu=num;
        while(1)
        {
                PAout(8)=0;
                read_flash(sector*2048+0x08000000,buff_flash,1024);
                        for(i=0;i<shengyu;i++)
                {
     if(buff_flash[i+pianyi]!=0xffff)
                         break;
                }
                if(i<shengyu)
                {
                        FLASH_ErasePage(sector*2048+0x08000000);
                        for(i=0;i<shengyu;i++)
                        {
                                buff_flash[i+pianyi]=p[i];
                        }
                                flash_write(sector*2048+0x08000000,buff_flash,1024);       
                }
                else         flash_write(addr,p,shengyu);
                if(num==shengyu)
                break;
                else
                {
                        pianyi=0;
                        addr=sector+shengyu;
                        sector=sector+1;
                        num=num-shengyu;
                        p=p+shengyu;
                        if(num>1024)
                                shengyu=1024;
                        else
                                shengyu=num;
                       
                }
                PDout(2)=!PDout(2);
                delay_ms(500);
               
        }
                        FLASH_Lock();

}



最佳答案

查看完整内容[请看2#楼]

直接 用我们的例程试试呢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-10-25 17:11:47 | 显示全部楼层
直接 用我们的例程试试呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 05:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表