zoukankan      html  css  js  c++  java
  • flash模拟EEROM

    FLASH中:0x08000000--0x08000000+SIZE保存的是用户代码

    Rule:

    16位为传输单位

    读数据:

    u16 STMFLASH_ReadHalfWord(u32 faddr)

    • 可以在通用地址空间直接寻址:data=*(vu16*)ADDR;[ADDR为32位数据,指向的数据为uv16型]

    写数据:

    • 写之前1:解锁FLASH_KEYR(FLASH_Lock(void);| FLASH_Lock(void);)
    • 写之前2:擦除,也就是其值必须是 0XFFFF,否则无法写入。[擦除页或直接擦除ALL]  1页=2k字节
    • 写之前3:  确保BSY 位为’0’
    • 写半字即16位(FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data);库里还有Word,byte版本实际上就是写两次HalfWord或1个byte占16位)
    • Wait until BSY==1

    擦除:

    • FLASH_Status FLASH_ErasePage(uint32_t Page_Address);
    • FLASH_Status FLASH_EraseAllPages(void);
    • FLASH_Status FLASH_EraseOptionBytes(void);

    ALIENTEK:

    void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite)

    void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)

    Insure That:

    1. 地址必须是用户代码区以外的地址,如果把用户代码给卡擦了,可想而知你运行的程序可能就被废了(先在KEIL中限制程序空间,但只要重刷就会失效
    2. 地址必须是 2 的倍数
  • 相关阅读:
    今晚的比赛(2011.12.4)
    js中prototype,constructor的理解
    laravel中empty(),is_null() 以及isEmpty()
    mysql查询语句and,or
    jquery简易tab切换
    Qt 的QcomboBox的简单使用
    折半查找
    C++强制类型转换(转)
    二叉树学习
    c++的重载,覆盖与隐藏
  • 原文地址:https://www.cnblogs.com/2cats/p/3598952.html
Copyright © 2011-2022 走看看