❶ stm8s的EEPROM讀寫程序如何編寫,需要哪些配置步驟
#define EEPMASS1 0xAE //密碼鑰匙1
#define EEPMASS2 0x56 //密碼鑰匙2
#define EEPADDR 0x4000 //eep地址起始
void eeprom_read(U16 u16Addr, U8 *pdatas, U8 len)
{
U8 *eep=(U8 *)u16Addr;
U8 j;
for(j=0; j<len; j++)
{
pdatas[j]=eep[j];
}
}
void eep_word_write(U16 u16Addr, U8 *pdatas, U8 len)
{
U8 *eep=(U8*)u16Addr;
U8 j;
FLASH_DUKR=EEPMASS1; //鎖1密鑰
FLASH_DUKR=EEPMASS2; //鎖2密鑰
while(!(FLASH_IAPSR&0x08)); //等待解密就緒
DISABLE_MAC_INTERRUPTS();
FLASH_CR2 |= 0x40; //
FLASH_NCR2 &= ~0x40; //設置字編程
for(j=0; j<len; j++)
{
eep[j] = pdatas[j];
}
while(!(FLASH_IAPSR&0x04));
FLASH_IAPSR &=0xf7; // off the eeprom program
ENABLE_MAC_INTERRUPTS();
}
❷ 綾蟲濋綈eeprom鎬庝箞鐢
紜瀹氶渶瑕佸瓨鍌ㄧ殑鏁版嵁錛屼互鍙婂瓨鍌ㄦ暟鎹鐨勫湴鍧鍜岄暱搴︺
1銆佸湪浣跨敤EEPROM涔嬪墠錛岄渶瑕侀栧厛紜瀹氶渶瑕佸瓨鍌ㄧ殑鏁版嵁綾誨瀷鍜屾牸寮忥紝騫惰$畻鍑哄瓨鍌ㄦ暟鎹鎵闇鐨凟EPROM鍦板潃鑼冨洿鍜岄暱搴︺
2銆佸垵濮嬪寲EEPROM錛屽皢EEPROM鍒濆嬪寲涓虹壒瀹氱殑鐘舵侊紝鍦ㄤ嬌鐢ㄥ墠紜淇濆畠澶勪簬鍙鍐欑姸鎬併傚叿浣撶殑鍒濆嬪寲鏂規硶鍙浠ュ弬鑰冪背鎬濋綈鎻愪緵鐨勭浉鍏蟲枃妗f垨璧勬枡銆
3銆佸啓鍏ユ暟鎹錛屼嬌鐢ㄧ紪紼嬪櫒錛圥rogrammer錛夋垨鑰呭叾浠栨敮鎸丒EPROM緙栫▼鐨勫伐鍏鳳紝灝嗘暟鎹鍐欏叆鍒版寚瀹氱殑EEPROM鍦板潃銆傚湪鍐欏叆鏁版嵁鏃訛紝闇瑕佹敞鎰忔暟鎹鐨勬g『鎬у拰瀹屾暣鎬э紝騫跺仛濂界浉搴旂殑鏍¢獙宸ヤ綔銆
4銆佽誨彇鏁版嵁錛屼嬌鐢ㄨ誨彇鍣錛圧eader錛夋垨鍏朵粬鏀鎸丒EPROM璇誨彇鐨勫伐鍏鳳紝浠庢寚瀹氱殑EEPROM鍦板潃璇誨彇瀛樺偍鐨勬暟鎹銆
5銆佹摝闄ゆ暟鎹錛屽傛灉闇瑕佹摝闄ゅ凡緇忓瓨鍌ㄧ殑鏁版嵁錛屽彲浠ヤ嬌鐢ㄦ摝闄ゅ櫒錛圗raser錛夋垨鍏朵粬鏀鎸丒EPROM鎿﹂櫎鐨勫伐鍏鳳紝灝嗘寚瀹氱殑EEPROM鍖哄煙鎿﹂櫎涓哄垵濮嬬姸鎬併