久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
Fu68xx單片機的flash讀寫代碼如何理解?
[打印本頁]
作者:
1314love
時間:
2022-8-3 14:30
標題:
Fu68xx單片機的flash讀寫代碼如何理解?
請問各位大佬們 怎么理解這兩段單片機代碼
/*-------------------------------------------------------------------------------------------------
Function Name : uint8 Get4ByteFromFlash(uint8 xdata *BlockStartAddr)
Description : 從目標FLASH扇區讀取4字節最新寫入的數據
Input : uint8 xdata *BlockStartAddr:目標FLASH扇區
Output : 讀出的數據
-------------------------------------------------------------------------------------------------*/
uint32 Get4ByteFromFlash(uint8 xdata *BlockStartAddr)
{
uint8 xdata *FlashStartAddr = BlockStartAddr;
uint8 i;
uint32 tempofFlashData;
for(i=0;i<32;i++)
{
tempofFlashData = *(uint32 code *)(FlashStartAddr + 4*i);
if(tempofFlashData==0)
{
if(i!=0)
{
tempofFlashData = *(uint32 code *)(FlashStartAddr + 4*(i-1));
return tempofFlashData;
}
else
{
return 0;
}
}
else
{
if(i==31)
{
return tempofFlashData;
}
}
}
return 0;
}
/*-------------------------------------------------------------------------------------------------
Function Name : void Write4Byte2Flash(uint8 xdata *BlockStartAddr,uint32 NewData2Flash)
Description : 寫入4個字節到FLASH
Input : uint8 xdata *BlockStartAddr:目標FLASH地址 NewData2Flash:被寫入數據
Output : 無
-------------------------------------------------------------------------------------------------*/
#if 1
void Write4Byte2Flash(uint8 xdata *BlockStartAddr,uint32 NewData2Flash)
{
uint8 xdata *FlashStartAddr = BlockStartAddr;
uint32 tempofFlashData=0;
uint32 tempofNewFlashData=0;
uint8 i;
FLASHUsingStatus=1; //FLASH正在使用
tempofNewFlashData = NewData2Flash;
for(i=0;i<32;i++)
{
tempofFlashData = *(uint32 code *)(FlashStartAddr+4*i);
if(tempofFlashData==0)
{
tempofFlashData = (tempofNewFlashData>>24)&0x000000ff;
Flash_Sector_Write((FlashStartAddr+4*i),(uint8)tempofFlashData);
_nop_();
tempofFlashData = (tempofNewFlashData>>16)&0x000000ff;
Flash_Sector_Write((FlashStartAddr+4*i+1),(uint8)tempofFlashData);
_nop_();
tempofFlashData = (tempofNewFlashData>>8)&0x000000ff;
Flash_Sector_Write((FlashStartAddr+4*i+2),(uint8)tempofFlashData);
_nop_();
tempofFlashData = tempofNewFlashData&0x000000ff;
Flash_Sector_Write((FlashStartAddr+4*i+3),(uint8)tempofFlashData);
_nop_();
break;
}
else
{
if(i==31)
{
Flash_Sector_Erase(FlashStartAddr);
_nop_();
tempofFlashData = (tempofNewFlashData>>24)&0x000000ff;
Flash_Sector_Write((FlashStartAddr),(uint8)tempofFlashData);
_nop_();
tempofFlashData = (tempofNewFlashData>>16)&0x000000ff;
Flash_Sector_Write((FlashStartAddr+1),(uint8)tempofFlashData);
_nop_();
tempofFlashData = (tempofNewFlashData>>8)&0x000000ff;
Flash_Sector_Write((FlashStartAddr+2),(uint8)tempofFlashData);
_nop_();
tempofFlashData = tempofNewFlashData&0x000000ff;
Flash_Sector_Write((FlashStartAddr+3),(uint8)tempofFlashData);
_nop_();
}
}
}
FLASHUsingStatus=0; //FLASH空閑
}
作者:
man1234567
時間:
2022-8-4 08:17
對照產品說明書就很好理解。
對于小眾產品,除非特殊需要,一般人不會研究的
作者:
haiyang201
時間:
2022-8-5 13:44
注釋里面不是寫的很清楚嗎?就是讀寫操作
作者:
1314love
時間:
2022-8-5 15:19
tempofFlashData = (tempofNewFlashData>>24)&0x000000ff就是他右移這個我不理解
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩亚洲视频
|
国产精品久久久久久婷婷天堂
|
久久亚洲视频
|
国产在线观看不卡一区二区三区
|
欧美日韩亚洲国产综合
|
午夜影院
|
成人精品福利
|
精品在线一区二区三区
|
欧美大片一区
|
国产精品99久久久久久人
|
麻豆av电影网
|
最新免费黄色网址
|
色偷偷人人澡人人爽人人模
|
免费激情网站
|
日韩av一区在线观看
|
亚洲精品在线观看视频
|
亚洲性网
|
免费在线观看一区二区
|
久久久婷婷
|
日韩视频区
|
五月婷婷视频
|
成人在线视频网
|
久久一日本道色综合久久
|
国产高清在线精品一区二区三区
|
国产精品久久久久久久久久久久久久
|
亚洲欧美日韩成人在线
|
亚洲性视频网站
|
国产精品视频在线播放
|
欧美一区二区三区免费在线观看
|
久久精品—区二区三区
|
国产精品特级毛片一区二区三区
|
亚洲欧洲精品在线
|
午夜电影福利
|
爱爱综合网
|
福利片在线看
|
99精品在线
|
热re99久久精品国产99热
|
精品一二区
|
中文字幕中文字幕
|
久久久综合精品
|
欧一区
|