新闻  |   论坛  |   博客  |   在线研讨会
R8/1B 学习板--IAR下的 data flash之读写例
renesasrulz | 2009-12-26 12:16:48    阅读:73389   发布文章

原文:R8/1B 学习板--IAR下的 data flash之读写例
 
 
 
void block_erase(  unsigned char *ers_addr)
 {
    di();                         //禁止中断
    fmr0=0x01;            
    asm("");
    fmr0=0x03;
    asm("");
    fmr1=0x80;
    asm("");
    fmr1=0x82;                     //使用EW1模式
    asm("");
    *ers_addr=0x20;               //擦除命令,先写0X20,再写0XD0
    *ers_addr=0xd0;               //擦除命令
    while(!fmr00);               //等待擦除完成
    if(fmr07==1) *ers_addr=0x50; //清除状态寄存器
    fmr0=0x01;
    ei();
 }
void writedata(unsigned char *ers_addr,unsigned char wdata)
 {
    di();                 //禁止中断
    fmr0=0x01;
    asm("");
    fmr0=0x03;
    asm("");
    fmr1=0x80;
    asm("");
    fmr1=0x82;
    asm("");
    *ers_addr=0x40;              //命令 选写0X40  再写数据
    *ers_addr=wdata;             //数据
    while(!fmr00);               //等待擦除完成
    if(fmr07==1) *ers_addr=0x50; //清除状态寄存器
    fmr0=0x01;
    ei();
 }
调用:
block_erase((void *)0x2400); 
 block_erase((void *)0x2800);
writedata((void *)Ftpd,Ubuf[Dtmp2]);

Ftpd--是一个变量,Ubuf[Dtmp2]  是一个变量数组。

FLASH写,只能把1变成0,不能把0变1

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
来自瑞萨单片机论坛(www.renesas-mcu.com)的经典文章。仅供大家参考,版权归作者所有。
推荐文章
最近访客