[STM32F3] 请教各位,F303RE FLASH模拟EEP问题

[复制链接]
1314|6
 楼主| eurphan 发表于 2015-12-25 22:38 | 显示全部楼层 |阅读模式
用的是标准库,折腾了好久了,可就是不能写入数据?请教各位,谁能帮我看看,万分感谢
#include "flash.h"
#include "delay.h"

u16 STMFLASH_ReadHalfWord(u32 faddr)
{
        return *(vu16*)faddr;
}
       
void STMFLASH_Write(u32 secter,u16 *pBuffer,u16 NumToWrite)       
{
  FLASH_Status status = FLASH_COMPLETE;
        u32 endaddr=0;       
       
        if(NumToWrite>1024)       
                return;
       
        FLASH_Unlock();                                                                       
       
        endaddr=secter+NumToWrite*2;       
       
        status=FLASH_ErasePage(secter);

        //if(status==FLASH_COMPLETE)
        //{
                while(secter<endaddr)//дÊý¾Ý
                {
                        FLASH_ProgramHalfWord(secter,*pBuffer);
                        secter+=2;
                        pBuffer++;
                }
        //}
        FLASH_Lock();//ÉÏËø
}

void STMFLASH_Read(u32 secter,u16 *pBuffer,u16 NumToRead)          
{
        u16 i;
        for(i=0;i<NumToRead;i++)
        {
                pBuffer[i] =STMFLASH_ReadHalfWord(secter+i*2);
        }
}



 楼主| eurphan 发表于 2015-12-25 23:35 | 显示全部楼层
已搞定
598330983 发表于 2015-12-26 11:44 | 显示全部楼层
楼主,你这程序哪儿的问题,怎么搞定这么快,你也太有才了。
zhuotuzi 发表于 2015-12-26 16:37 | 显示全部楼层
是不是需要先读出来才能再写入?
可可球 发表于 2015-12-26 20:46 | 显示全部楼层
可就是不能写入数据

可能是通信时序的问题
 楼主| eurphan 发表于 2015-12-26 23:44 | 显示全部楼层
598330983 发表于 2015-12-26 11:44
楼主,你这程序哪儿的问题,怎么搞定这么快,你也太有才了。

其实程序没问题,只是我测试的时候用的是一个变量,所以不行,换成数组就可以了
 楼主| eurphan 发表于 2015-12-26 23:45 | 显示全部楼层
598330983 发表于 2015-12-26 11:44
楼主,你这程序哪儿的问题,怎么搞定这么快,你也太有才了。

对了,固件库FLASH文件里有个错误,我把它改正了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

244

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部