STM32:片上Flash 操作
2024-08-22 22:46:16
之前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
最新文章
- discuz x3在DIY模块中调用伪静态不成功,显示动态链接的解决办法
- ubuntu系统安装mongodb
- Eclipse 和 NetBeans 快捷键即其他常用功能比较
- UVA 10462 Is There A Second Way Left? 次小生成树
- 按字母顺序排序的 arcpy.mapping 类列表
- Object Storage(Swift)安装过程——Havana
- 无语的index hint:手工分配哈希区,5小时不出结果,优化后20分钟
- linux + shell 命令等
- java线程控制安全
- 安卓开源框架SlidingMenu使用
- [十八]JavaIO之FileReader 和 FileWriter
- Promise 用法
- Angular 2/4/5+ 重复点击菜单刷新界面
- 【MySQL】5.7 复制
- c# 静态构造函数与私有构造函数共存
- Win10环境Tensorflow-GPU13.1/JupyterNotebook的安装
- osgearth cache
- 微信小程序 ui框架(辅助)
- 《selenium2 python 自动化测试实战》(6)——打印信息和设置等待时间
- Appium Inspector定位元素与录制简单脚本
热门文章
- safepoint与UseCountedLoopSafepoints
- JQuery_九大选择器
- [luoguP1494] 岳麓山上打水 &;&; [luoguP2744] [USACO5.3]量取牛奶Milk Measuring
- [ 浙江大学 程序设计专题 ] 四个专题代码 报告 PPT共享
- css3 模拟标牌震荡效果
- operamasks—omMessageTip的使用
- tomcat会自动解压webapps目录下的war包
- 网络学习之OSI七层协议和TCP协议
- Linux下完美使用find+grep实现全局代码搜索
- 【v2.x OGE-example 第三节 播放精灵动画】