Можете ли вы сохранить данные в раздел кучи в памяти Arduino?
На обычных компьютерах куча очищается при закрытии программы, но могу ли я сохранить данные в кучу Arduino с помощью функции malloc
. И будет ли он очищен после выключения Arduino?
@Stel Team, 👍0
Обсуждение1 ответ
Лучший ответ:
Да, вы можете использовать malloc()
на Arduino, однако я бы не рекомендовал вам использовать это, поскольку память требует большого количества памяти и чрезмерного использования malloc()
и free()
вызывают фрагментацию кучи, которая может съедать вашу память и вызывать случайные сбои (String
— главная причина этого).
Я не понимаю, что вы подразумеваете под «очисткой» памяти. При отключении питания содержимое памяти теряется. Вся SRAM забывает свое содержимое, если нет возможности поддерживать это состояние. Примерно так же, как когда вы отключаете компьютер от сети, он «забывает», что Windows загружена.
Если вы хотите сохранить информацию при отключенном питании, вам необходимо использовать EEPROM.
- Как вызвать функции C из скетча ардуино?
- max7219 связанный дисплей, показывающий зеркальный текст
- Пиринговая коммуникация
- Запуск С для ардуино
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- Прерывание ардуино при смене контакта
- GSM-модуль IOT-GA6 Arduino + ошибка CME 58
- Разница между массивом char и массивом unsigned char
Да, вы можете использовать malloc (хотя это редко бывает хорошей идеей в такой маленькой системе памяти). Будет ли он «очищен»? Нет. Оно потеряется. Нет такого понятия, как «чистый». Вынимаешь питание, память стирается. Без питания для поддержания состояния памяти нет памяти, которую можно было бы «очистить». И нечего делать эту "чистку"., @Majenko
@Majko Итак, я потеряю данные, когда Arduino выключится, верно?, @Stel Team
Да. Как будто вы теряете свой текстовый документ, когда отключаете питание от компьютера., @Majenko
@Маженко Спасибо! Будет здорово, если вы опубликуете это в качестве ответа., @Stel Team