導航:首頁 > 操作系統 > 讀單片機的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相關的資料

熱點內容
如何雲伺服器解壓文件 瀏覽:928
單片機93加9E的psw 瀏覽:723
福建少兒頻道哪個app可以看 瀏覽:393
印度加密代幣機票 瀏覽:418
哪個app可以看江西2套 瀏覽:680
哪個小說app好用還免費 瀏覽:665
win7ping命令 瀏覽:507
程序員看圖識演算法 瀏覽:949
vs設置遠程編譯 瀏覽:600
速騰汽車怎麼給安卓手機充電 瀏覽:270
蘋果安卓換機用什麼軟體好 瀏覽:262
華為通話加密電話 瀏覽:60
什麼伺服器可以代替計算機 瀏覽:962
伺服器當電腦用怎麼安裝顯卡 瀏覽:521
回女友消息神器python 瀏覽:52
App分類框怎麼添加 瀏覽:548
海爾帥王子冰箱壓縮機啟動跳閘 瀏覽:490
cadfill命令什麼意思 瀏覽:338
中公專項題庫pdf 瀏覽:935
拼多多緩存在哪個文件夾 瀏覽:645