導航:首頁 > 操作系統 > 讀單片機的flash

讀單片機的flash

發布時間:2024-05-05 07:06:43

❶ 如何用單片機讀寫FLASH

就是這段程序了。我一直用的。不懂的可以找我

#define CMD_IDLE 0
#define CMD_READ 1
#define CMD_PROGRAM 2
#define CMD_ERASE 3
#define ENABLE_IAP 0X82// SYSCLK<24M
#define IAP_ADDRESS 0X0000

void IAP_Disable()//Make MCU if safe state
{
//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處於安全狀態,
//一次連續的IAP 操作完成之後建議關閉IAP 功能,不需要每次都關
IAP_CONTR = 0; //關閉IAP 功能
IAP_CMD = 0; //清命令寄存器,使命令寄存器無命令,此句可不用
IAP_TRIG = 0; //清命令觸發寄存器,使命令觸發寄存器無觸發,此句可不用
IAP_ADDRH = 0x80; // ??? 0x80 ????
IAP_ADDRL = 0;
}
//讀一位元組,調用前需打開IAP 功能,入口:DPTR = 位元組地址,返回:A = 讀出位元組
uchar Byte_Read(uint addr)
{
IAP_CONTR=ENABLE_IAP; //打開IAP 功能, 設置Flash 操作等待時間
IAP_CMD=CMD_READ; //IAP/ISP/EEPROM 位元組讀命令
IAP_ADDRL=addr; //設置目標單元地址的高8 位地址
IAP_ADDRH=addr>>8; //設置目標單元地址的低8 位地址
IAP_TRIG=0X5A;//先送 5Ah,再送A5h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG=0XA5;//送完A5h 後,ISP/IAP 命令立即被觸發起動
_nop_();
IAP_Disable();//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處於安全狀態
return IAP_DATA;
}

//位元組編程,調用前需打開IAP 功能,入口:DPTR = 位元組地址, A= 須編程位元組的數據
void Byte_Program(uint addr,uchar dat)
{
IAP_CONTR=ENABLE_IAP;//打開 IAP 功能, 設置Flash 操作等待時間
IAP_CMD=CMD_PROGRAM;//IAP/ISP/EEPROM 位元組編程命令
IAP_ADDRL=addr;//設置目標單元地址的高8 位地址
IAP_ADDRH=addr>>8; //設置目標單元地址的低8 位地址
IAP_DATA=dat;//要編程的數據先送進IAP_DATA 寄存器
IAP_TRIG=0X5A;//先送 5Ah,再送A5h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG=0XA5; //送完A5h 後,ISP/IAP 命令立即被觸發起動
_nop_();
IAP_Disable();//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處於安全狀態,
}
void Sector_Erase(uint addr) //擦除扇區, 入口:DPTR = 扇區地址
{
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_ERASE;
IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
IAP_Disable();
}

❷ 單片機是直接從Flash里讀取指令的嗎

單片機是直接從Flash里讀取指令,好多單片機的程序存儲器FLASH比較大,而SRAM則要小得多,不大可能把程序先裝入SRAM中再執行,有的單片機雖可以預取指令,但這是屬於內部結構上的特點,編程人員並不可控.現今多數51和AVR單片機都有內部RAM和片上RAM,相當於CPU的一級緩存和二級緩存,但由於在多數應用中它們就沒有外擴RAM,也就沒有人明確提出什麼是單片機cache的定義,一般籠統地把內部RAM和片上RAM合稱為內存。

❸ 單片機中,對Flash的讀寫與外部RAM/EEPROM讀寫有什麼不一樣

FLASH是程序存儲器,嚴格來講是不允許MCU寫的,但是出於某些功能有的單片機允許MCU寫,但是為了安全寫FLASH會有一種相對復雜的操作。EEPROM是電可擦寫存儲器,他相對寫FLASH來說比較簡單,不同廠商的單片機EEPROM的操作也會有所不同。前面兩種都屬於間接定址,最後RAM是最簡單的讀寫,可以直接定址操作的。

❹ 單片機讀寫flash為什麼必須是偶數地址

如果是操作16位匯流排,那麼訪問時必須按偶數地址對齊。
否則就不一定受這樣的限制。例如對串列Flash進行讀操作是可以對奇地址進行單位元組讀取的。

❺ 新手請問師傅們我該如何通過spi讀寫這個單片機內FLASH

按寫的這個順序來操作啊。
先在偏移02h的寄存器寫好地址、在偏移03h的寄存器寫好數據,
然後向04h、05h寫入A5h、C3h解開防寫,
接著向00h依次寫入58A9h和A958h解鎖FLASH操作,
然後改寫01h寄存器的第4位到第2位,寫入FLASH操作命令,並將第0位置1,啟動操作,
回讀01h寄存器直到第0位變成0,表明操作完成,

❻ 單片機中Flash是什麼意思

FLASH快閃記憶體 快閃記憶體的英文名稱是"Flash Memory",一般簡稱為"Flash",它屬於內存器件的一種,是一種不揮發性( Non-Volatile )內存。快閃記憶體的物理特性與常見的內存有根本性的差異:目前各類 DDR 、 SDRAM 或者 RDRAM 都屬於揮發性內存,只要停止電流供應內存中的數據便無法保持,因此每次電腦開機都需要把數據重新載入內存;快閃記憶體在沒有電流供應的條件下也能夠長久地保持數據,其存儲特性相當於硬碟,這項特性正是快閃記憶體得以成為各類便攜型數字設備的存儲介質的基礎。

閱讀全文

與讀單片機的flash相關的資料

熱點內容
plc和單片機哪個好 瀏覽:535
帝國神話組建雲伺服器 瀏覽:827
鄧散木pdf 瀏覽:199
方舟怎麼直連伺服器圖片教程 瀏覽:563
假相pdf 瀏覽:336
找對象找程序員怎麼找 瀏覽:976
怎麼投訴蘋果商店app 瀏覽:470
華為手機如何看有多少個app 瀏覽:734
btr如何管理別的伺服器 瀏覽:410
spwm軟體演算法 瀏覽:184
70多歲單身程序員 瀏覽:221
高考考前解壓拓展訓練 瀏覽:217
用紙做解壓玩具不用澆水 瀏覽:584
谷輪壓縮機序列號 瀏覽:737
牛頓插值法編程 瀏覽:366
php多用戶留言系統 瀏覽:731
安卓和蘋果如何切換流量 瀏覽:703
怎麼知道dns伺服器是多少 瀏覽:976
5995用什麼簡便演算法脫式計算 瀏覽:918
電腦上如何上小米雲伺服器地址 瀏覽:921