之前IAP时候记录过一些,今天对特定地方写又加深了印象,写与擦除都需要先unclock

 //读取指定地址的半字(16位数据)
//faddr:读地址(此地址必须为2的倍数!!)
//返回值:对应数据.
u16 STMFLASH_ReadHalfWord(u32 faddr)
{
return *(vu16*)faddr;
}

STMFLASH_ReadHalfWord

 //读取指定地址的字(32位数据)
//faddr:读地址(此地址必须为2的倍数!!)
//返回值:对应数据.
u32 STMFLASH_ReadOneWord(u32 faddr)
{
return *(vu32*)faddr;
}

STMFLASH_ReadOneWord

 //从指定地址开始读出指定长度的数据
//ReadAddr:起始地址
//pBuffer:数据指针
//NumToWrite:半字(16位)数
void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)
{
u16 i;
for(i=;i<NumToRead;i++)
{
pBuffer[i]=STMFLASH_ReadHalfWord(ReadAddr);//读取2个字节.
ReadAddr+=;//偏移2个字节.
}
}

STMFLASH_Read

 /从指定地址开始读出指定长度的数据
//ReadAddr:起始地址
//pBuffer:数据指针
//NumToWrite:字(32位)数
void STMFLASH_Read_Word(u32 ReadAddr,u32 *pBuffer,u32 NumToRead)
{
u32 i;
for(i=;i<NumToRead;i++)
{
pBuffer[i]=STMFLASH_ReadOneWord(ReadAddr);//读取4个字节.
ReadAddr+=;//偏移4个字节.
}
}

STMFLASH_Read_Word

 //不检查的写入
//WriteAddr:起始地址
//pBuffer:数据指针
//NumToWrite:半字(16位)数
void STMFLASH_Write_NoCheck(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite)
{
u16 i;
FLASH_Unlock();
for(i=;i<NumToWrite;i++)
{
FLASH_ProgramHalfWord(WriteAddr,pBuffer[i]);
WriteAddr+=;//地址增加2.
}
FLASH_Lock();//上锁 }

STMFLASH_Write_NoCheck

 //不检查的写入
//WriteAddr:起始地址
//pBuffer:数据指针
//NumToWrite:半字(16位)数
void STMFLASH_Write_NoCheck_OneWord(u32 WriteAddr,u32 *pBuffer,u16 NumToWrite)
{
u16 i;
FLASH_Unlock();
for(i=;i<NumToWrite;i++)
{
FLASH_ProgramWord(WriteAddr,pBuffer[i]);
WriteAddr+=;//地址增加2.
}
FLASH_Lock();//上锁
}

STMFLASH_Write_NoCheck_OneWord

    FLASH_Unlock();
FLASH_ErasePage(u32 address);
FLASH_Lock();

erase one page

最新文章

  1. discuz x3在DIY模块中调用伪静态不成功,显示动态链接的解决办法
  2. ubuntu系统安装mongodb
  3. Eclipse 和 NetBeans 快捷键即其他常用功能比较
  4. UVA 10462 Is There A Second Way Left? 次小生成树
  5. 按字母顺序排序的 arcpy.mapping 类列表
  6. Object Storage(Swift)安装过程——Havana
  7. 无语的index hint:手工分配哈希区,5小时不出结果,优化后20分钟
  8. linux + shell 命令等
  9. java线程控制安全
  10. 安卓开源框架SlidingMenu使用
  11. [十八]JavaIO之FileReader 和 FileWriter
  12. Promise 用法
  13. Angular 2/4/5+ 重复点击菜单刷新界面
  14. 【MySQL】5.7 复制
  15. c# 静态构造函数与私有构造函数共存
  16. Win10环境Tensorflow-GPU13.1/JupyterNotebook的安装
  17. osgearth cache
  18. 微信小程序 ui框架(辅助)
  19. 《selenium2 python 自动化测试实战》(6)——打印信息和设置等待时间
  20. Appium Inspector定位元素与录制简单脚本

热门文章

  1. safepoint与UseCountedLoopSafepoints
  2. JQuery_九大选择器
  3. [luoguP1494] 岳麓山上打水 &amp;&amp; [luoguP2744] [USACO5.3]量取牛奶Milk Measuring
  4. [ 浙江大学 程序设计专题 ] 四个专题代码 报告 PPT共享
  5. css3 模拟标牌震荡效果
  6. operamasks—omMessageTip的使用
  7. tomcat会自动解压webapps目录下的war包
  8. 网络学习之OSI七层协议和TCP协议
  9. Linux下完美使用find+grep实现全局代码搜索
  10. 【v2.x OGE-example 第三节 播放精灵动画】