دوستان سلام.
چند روز پیش یه مشکلی داشتم با کتابخونه eeprom.h در STM32 که در این تاپیک مطرح کردم و خب مشکل برطرف شد.
اما مشکل جدیدی که پیش اومده اینه که محتویات آدرس های EEPROM با نوشتن در اون از بین میره و مقادیر نامعتبری میگیره…
مثلا من دوتا متغیر 32 بیتی و 5 تا رشته(8بیتی) 20 عضوی رو میخوام توی EEPROM ذخیره کنم. با ذخیره رشته اول مشکلی نیست ، رشته دوم مشکلی نیست اما یهو با ذخیره رشته سوم(ممکنه رشته پنجم باشه و اصلا معلوم نیست کِی این خطا رخ میده)، تمام محتویات من حتی اون دوتا متغیر 32 بیتی مقادیر نامعتبر میگیرن. به عبارتی پاک میشن و فقط بخشی از دیتا درست باقی میمونه.
این اشکال گاهی پیش نمیاد و گاهی خیلی سریع بروز میکنه.
و اینکه با پاک کردن محتوای چند آدرس مشکل جدی تر بروز میکنه.
کارهایی که تابحال انجام دادم و جواب نگرفتم:
1-آهسته کردن نوشتن تا 10 میلی ثانیه برای هر خانه حافظه
2-تغییر در استفاده از HAL_FLASH_Unlock() و HAL_FLASH_Lock() در جاهای مختلف.
3-تغییر در مقدار پیشفرض حافظه
4-Full Chip Erase قبل از هر بار پروگرم کردن
5-ریست کردن کل حافظه قبل از شروع با خود میکرو کنترلر
اگر کسی میدونه لطفا راهنمایی کنه. ممنونم.