新聞中心

        EEPW首頁 > 網(wǎng)絡(luò)與存儲 > 設(shè)計應(yīng)用 > stm8s開發(fā)(九) EEPROM的使用:使用EEPROM存儲數(shù)據(jù)!

        stm8s開發(fā)(九) EEPROM的使用:使用EEPROM存儲數(shù)據(jù)!

        作者: 時間:2017-09-25 來源:網(wǎng)絡(luò) 收藏

          是單片機應(yīng)用系統(tǒng)中經(jīng)常會用到的存儲器,它主要用來保存一些掉電后需要保持不變的數(shù)據(jù)。在以前的單片機系統(tǒng)中,通常都是在單片機外面再擴充一個芯片,這種方法除了增加成本外,也降低了可靠性。現(xiàn)在,很多單片機的公司都推出了集成有小容量的單片機,這樣就方便了使用,降低了成本,提高了可靠性。

        本文引用地址:http://www.104case.com/article/201709/364741.htm

          STM8單片機芯片內(nèi)部也集成有EEPROM,容量從640字節(jié)到2K字節(jié)。最為特色的是,在STM8單片機中,對EEPROM的訪問就象常規(guī)的RAM一樣,非常方便。EEPROM的地址空間與內(nèi)存是統(tǒng)一編址的,地址從004000H開始,大小根據(jù)不同的芯片型號而定。

          為了管理方便,定義EEPROM的地址

          #define EP_HEADER_ADDR 0x4000

          操作EEPROM需要初始化,也就是FLASH解鎖,解鎖需要兩個密鑰,順序還不能調(diào)換。

          void EEPROM_init(void)

          {

          do

          {

          FLASH_CR1=0x00;

          FLASH_CR2=0x00;

          FLASH_NCR2=0xFF;

          FLASH_DUKR = 0xAE; // 寫入第一個密鑰

          FLASH_DUKR = 0x56; // 寫入第二個密鑰

          } while((FLASH_IAPSR & 0x08) == 0); // 若解鎖未成功,則重新再來

          }

          還有一個加鎖的功能,一般來說操作完EEPROM之后需要加鎖保護。

          void EEPROM_lock(void)

          {

          FLASH_IAPSR=(u8)(~0x08); //重新上鎖

          }

          接下來就是兩個讀寫的基本操作了。

          //EEPROM指定地址寫入一個數(shù)據(jù) addr:相對地址 dat:數(shù)據(jù)

          void EEPROM_write(unsigned char addr, unsigned char dat)

          {

          unsigned char *p;

          p=(unsigned char *)(EP_HEADER_ADDR + addr);

          *p=dat;

          while(!(FLASH_IAPSR&0x04)); //等待寫操作成功

          }

          //EEPROM指定地址讀出一個數(shù)據(jù) addr:相對地址

          unsigned char EEPROM_read(unsigned char addr)

          {

          unsigned char *p;

          p=( unsigned char *)(EP_HEADER_ADDR + addr);

          return *p;

          }

          這里給的地址是絕對地址,函數(shù)內(nèi)有個偏移地址的操作(偏移4000H)。

          炒雞簡單是不?

          有關(guān)EEPROM和FLASH的介紹:http://blog.csdn.net/yuanlulu/article/details/6163106

          附上在IAR環(huán)境下的項目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代碼。

          http://download.csdn.NET/detail/devintt/9454188



        關(guān)鍵詞: stm8s EEPROM

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 双牌县| 永德县| 修水县| 察隅县| 岑溪市| 十堰市| 黑山县| 平利县| 博客| 灵川县| 临西县| 昌乐县| 永登县| 乌鲁木齐市| 周口市| 岑巩县| 碌曲县| 汉沽区| 涿州市| 凤庆县| 雅江县| 洞口县| 遂溪县| 登封市| 财经| 洱源县| 四平市| 长治县| 雷波县| 潜山县| 时尚| 南川市| 赤城县| 武陟县| 安多县| 锡林浩特市| 涪陵区| 昭觉县| 平利县| 兴隆县| 大同市|