91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-19
  • 語言: 其他
  • 標(biāo)簽: stm32??flash??

資源簡介

基于stm32 開發(fā)板的flash讀寫程序,可以保存用戶數(shù)據(jù),測試ok!

資源截圖

代碼片段和文件信息

#include?“ev_stm32_falsh.h“


uint16_t?Flash_Write_Without_check(uint32_t?iAddress?uint8_t?*buf?uint16_t?iNumByteToWrite)?
{
uint16_t?i?=?0;
volatile?FLASH_Status?FLASHStatus?=?FLASH_COMPLETE;

while((i? {
FLASHStatus?=?FLASH_ProgramHalfWord(iAddress?*(uint16_t*)buf);
i?=?i+2;
iAddress?=?iAddress?+?2;
buf?=?buf?+?2;
}

return?iNumByteToWrite;
}

int?Flash_Write(uint32_t?iAddress?uint8_t?*buf?uint32_t?iNbrToWrite)?
{
uint32_t?sectoraddress;
uint32_t?iNumByteToWrite?=?iNbrToWrite;
uint16_t?sectoroffset;
uint16_t?sectorremainspace;??
uint16_t?i?=?0;????
uint8_t?tmp[FLASH_PAGE_SIZE];

volatile?FLASH_Status?FLASHStatus?=?FLASH_COMPLETE;

FLASH_UnlockBank1();

sectoraddress?=?iAddress?&?(~(FLASH_PAGE_SIZE?-?1?))?;//扇區(qū)地址?
sectoroffset?=?iAddress?&?(FLASH_PAGE_SIZE?-?1);?????//在扇區(qū)內(nèi)的偏移
sectorremainspace?=?FLASH_PAGE_SIZE?-?sectoroffset;???????????//扇區(qū)剩余空間大小?

if(iNumByteToWrite<=sectorremainspace)?sectorremainspace?=?iNumByteToWrite;//不大于4096個字節(jié)

while(?1?)?{
Flash_Read(sectoraddress?tmp?FLASH_PAGE_SIZE);???//讀出整個扇區(qū)
for(i=0;i {???????//校驗數(shù)據(jù)
if(tmp[sectoroffset+i]!=0XFF)?break;???????//需要擦除?
}
if(i FLASHStatus?=?FLASH_ErasePage(sectoraddress);?//擦除這個扇區(qū)
if(FLASHStatus?!=?FLASH_COMPLETE)
return?-1;
for(i=0;i {???//復(fù)制
tmp[i+sectoroffset]=buf[i];???
}
Flash_Write_Without_check(sectoraddress?tmp?FLASH_PAGE_SIZE);//寫入整個扇區(qū)??
}?else?{
Flash_Write_Without_check(iAddressbufsectorremainspace);//寫已經(jīng)擦除了的直接寫入扇區(qū)剩余區(qū)間.
}

if(iNumByteToWrite==sectorremainspace)?//寫入結(jié)束了
break;
else?
{
sectoraddress?+=?FLASH_PAGE_SIZE;
sectoroffset?=?0;//偏移位置為0?
buf?+=?sectorremainspace;??//指針偏移
iAddress?+=?sectorremainspace;//寫地址偏移????
iNumByteToWrite?-=?sectorremainspace;??//字節(jié)數(shù)遞減
if(iNumByteToWrite>FLASH_PAGE_SIZE)?
sectorremainspace=FLASH_PAGE_SIZE;//下一個扇區(qū)還是寫不完
else?
sectorremainspace?=?iNumByteToWrite;??//下一個扇區(qū)可以寫完了
}

}

FLASH_LockBank1();
return?iNbrToWrite;?
}

int?Flash_Read(uint32_t?iAddress?uint8_t?*buf?uint32_t?iNbrToRead)?
{
int?i?=?0;
while(i? *(buf?+?i)?=?*(__IO?uint8_t*)?iAddress++;
i++;
}
return?i;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2495??2014-09-26?10:50??application\ev_stm32_falsh.c

?????文件????????878??2014-09-26?11:27??application\ev_stm32_falsh.h

?????文件????????537??2014-09-26?11:00??application\startup.c

?????目錄??????????0??2014-09-26?11:30??application

-----------?---------??----------?-----??----

?????????????????3910????????????????????4


評論

共有 條評論