久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17276|回復: 1
打印 上一主題 下一主題
收起左側

STM8L的EEPROM讀寫原理及例程

[復制鏈接]
跳轉到指定樓層
樓主
ID:140343 發表于 2016-10-10 00:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STM8L103C6擁有1KB的片上EEPROM,可以用來存儲程序需要用到的參數,就不需要額外使用24C02這樣的外部存儲器了.
同時,和24C02比起來,STM8L的片上EEPROM操作更簡單,可以直接對地址進行操作,進行數據讀寫.
下圖是STM8L閃存和EEPROM的地址分配圖,可以看到EEPROM的起始地址為0x001000,結束地址為0x0013FF.共1024個地址空間,所以EEPROM的容量為1KB.

EEPROM在上電復位后是寫保護的,在向其中寫入數據時,需要解鎖,關閉寫保護.解鎖流程為:
①第一次向FLASH_DUKR寫入密鑰0xAE
②第二次向FLASH_DUKR寫入密鑰0x56
兩次都寫入正確后,寫保護功能被關閉,可以對EEPROM區域進行寫操作.解鎖成功后,DUL位會被置位,在寫完密鑰后,可以讀取DUL位來判斷有沒有解鎖成功.
在向EEPROM寫數據時,單片機內部會產生高壓對EEPROM寫操作,如果這個時候被中斷打斷,會造成單片機異常,所以寫操作時,需要關閉總中斷,防止意外發生.
本例程,先向EEPROM的四個地址各寫入了一個字節的數據,然后從這個四個地址讀取出這些數據,和寫入數據進行對比.從下圖可以看到,讀出數據和寫入數據完全一致.

  1. /****************************************************************************************

  2. *開發環境:IAR for stm8 v6.5.3

  3. *硬件平臺:STM8L-DISCOVERY

  4. *功能說明:本例程,先向EEPROM的四個連續地址寫入四個字節數據,然后讀取出來,與寫入數據對比

  5. *作    者:茗風

  6. ****************************************************************************************/

  7. #include"iostm8l152c6.h"

  8. #include"stdint.h"

  9. #define EEPROM_STARTADDR 0x1000


  10. /******************************************************************************************************

  11. *名    稱:  void EEPROM_WriteByte(uint16_t Addr,uint8_t Data)

  12. *功    能: 向EEPROM指定地址寫入一字節數據

  13. *入口參數: Addr:存放數據的偏移地址

  14. *           Data:待寫入的數據

  15. *出口參數:無

  16. *范    例:

  17. ******************************************************************************************************/

  18. void EEPROM_WriteByte(uint16_t Addr,uint8_t Data)

  19. {

  20.    uint8_t  *Ptr_SegAddr; //Segment pointer

  21.    Ptr_SegAddr = (uint8_t *)(EEPROM_STARTADDR+Addr);  //Initialize  pointer

  22.    FLASH_DUKR=0xAE;

  23.    FLASH_DUKR=0x56;

  24.    while(!FLASH_IAPSR_DUL);//如果DUL沒有置位,說明解鎖不成功,最好加入超時判斷

  25.    asm("sim");//關閉中斷

  26.    *Ptr_SegAddr=Data; //指定地址,寫1 字節

  27.    while(!FLASH_IAPSR_EOP);//等待寫操作完成,最好加入超時判斷

  28.    asm("rim");//打開中斷

  29.    FLASH_IAPSR_DUL=0;//上鎖,對DATA EEPROM寫保護

  30.    ////////////////////

  31. }

  32. /******************************************************************************************************

  33. *名    稱:uint8_t EEPROM_ReadByte(uint8_t Addr)

  34. *功    能:從EEPROM中讀取一個字節數據

  35. *入口參數:Addr:存放數據的偏移地址

  36. *出口參數:Data:讀回的數據

  37. *說    明:無

  38. *范    例:無

  39. ******************************************************************************************************/

  40. uint8_t EEPROM_ReadByte(uint16_t Addr)

  41. {

  42.    uint16_t Data=0;

  43.    uint8_t *Ptr_SegAddr;

  44.    Ptr_SegAddr = (uint8_t *)(EEPROM_STARTADDR+Addr);  //Initialize  pointer

  45.    Data=*Ptr_SegAddr;

  46.    return Data;

  47. }


  48. void main(void)

  49. {

  50.   static  uint8_t  t1=0,t2=0,t3=0,t4=0;

  51.   EEPROM_WriteByte(0x00,0x40);

  52.   EEPROM_WriteByte(0x01,0x41);

  53.   EEPROM_WriteByte(0x02,0x42);

  54.   EEPROM_WriteByte(0x03,0x43);

  55.   

  56.   t1=EEPROM_ReadByte(0x00);

  57.   t2=EEPROM_ReadByte(0x01);

  58.   t3=EEPROM_ReadByte(0x02);

  59.   t4=EEPROM_ReadByte(0x03);

  60. //  asm("rim");               //enable interrupts

  61.   while(1)

  62.   {

  63. //    asm("wfi");

  64.   }

  65. }

復制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1097756 發表于 2024-3-10 15:02 | 只看該作者
很好的程序
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日日 | 一级午夜aaa免费看三区 | 国产成人综合亚洲欧美94在线 | 国产成人免费视频 | 免费国产精品久久久久久 | 欧美一级免费看 | 中文字幕一区二区三区精彩视频 | 日韩欧美一级片 | 深夜福利亚洲 | 少妇精品久久久久久久久久 | 91在线观看网址 | 亚洲视频三区 | 久久r久久 | 国产不卡一区 | 精品一区二区久久久久久久网站 | 免费毛片www com cn | 一级黄色片网站 | 欧美激情综合色综合啪啪五月 | 午夜av电影| 国产美女在线观看 | 午夜视频一区二区三区 | 免费中文字幕 | 成人免费一区二区三区视频网站 | 黄色在线免费观看视频网站 | 自拍偷拍亚洲欧美 | 一级久久久久久 | 99在线免费观看 | 成人激情视频免费观看 | 国产午夜精品福利 | 天天草天天操 | 欧美涩涩网 | 99一区二区 | 欧美成人精品欧美一级 | 第一区在线观看免费国语入口 | 成人在线精品视频 | 欧美xxxx色视频在线观看免费 | 国内精品久久精品 | 国产精品我不卡 | 国产精品亚洲精品 | 2一3sex性hd| 日韩激情免费 |