❶ 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鍖哄煙鎿﹂櫎涓哄垵濮嬬姸鎬併