Подключение sd карты к ардуино

Important things to note

  • You can use the and functions to write strings, variables, and so on, just like Serial objects.

function returns a single character at a time. It doesn’t read a complete line.
When you’re done with the file, you must use the function to make sure that all the data is written permanently. This also reduces the amount of RAM being used.
You can open files in a directory. To open a file in the directory, for example, use . Remember that the path to the file is relative.
The SD card library does not support long filenames because it uses the 8.3 filename format. So keep file names short. For instance, “datalog.txt” is fine, but “My Sensor log file.text” is not!
Keep in mind that file names are not case sensitive. So datalog.txt is the same as DataLog.Txt and DATALOG.TXT

Функции работы с динамическими библиотеками

Использовать динамические библиотеки можно не только в начале загрузки, но и в процессе самой работы программы.
Программа сама может вызывать любые функции из библиотеки, когда ей захочется. Для этого всего-лишь надо использовать
библиотеку dl, которая позволяет линковать библиотеки «на лету». Она управляет загрузкой динамических библиотек, вызовом
функций из них и выгрузкой после конца работы.

Для использования функций программной работы с динамическими библиотеками необходимо подключить заголовочный файл:

Чтобы вызывать какие-то функции из динамической библиотеки сначала надо открыть эту библиотеку (можно сказать «загрузить»).
Открывается она функцией:

Параметр filename содержит путь до требуемой библиотеки, а параметр flag задает некоторые специфические флаги для работы.
Функция возвращает указатель на загруженную библиотеку. В случае любой ошибки возвращается указатель NULL. В таком
случае тест ошибки понятный человеку можно получить с помощью функции dlerror(). Пока мы не будем задумываться над
этим, и я приведу стандартный код для открытия библиотеки:

После этого можно работать с библиотекой. А работа эта заключается в получении адреса требуемой функции из библиотеки.
Получить адрес функции или переменной можно по ее имени с помощью функции:

Для этой функции требуется адрес загруженной библиотеки handle, полученный при открытии функцией dlopen(). Требуемая
функция или переменная задается своим именем в переменной symbol.

Закрывается библиотека функцией:

При закрытии библиотеки динамический линковщик проверяет счетчик количества открытий библиотеки, и если она была открыта
несколькими программами одновременно, то она не выгружается до тех пор, пока все программы не закроют эту библиотеку.

Для примера создадим программу, которая в качестве параметра получает название функции, которую она будет использовать
в работе. Например, это будут математические функции возведения в степень. Создадим сначала динамическую библиотеку.
Пишем ее код:

Сохраняем его в файл lib.c и создаем динамическую библиотеку libpowers.so следующими командами:

Теперь создаем основную программу в файле main.c:

Код главной программы готов. Требуется его откомпилировать с использованием библиотеки dl:

Получим программный файл main, который можно тестировать. Наша программа должна возводить значение 3.0 в
требуемую нами степень, которая задается названием функции. Давайте попробуем:

На этом все.

По теме:

  • Изучаем Linux, 101: Управление общими библиотеками
  • How to print the ld(linker) search path
  • LD, Shared Library, SO и много страшных слов
  • dlfcn.h — dynamic linking

How It Works

First let’s take a look at the SD Card Module. It works with standard MicroSD Cards which operating voltage is 3.3 V. Therefore, the module has a voltage regulator and a level shifter so that we can use it with the 5 V pins of the Arduino Board.

The SD Card Module have six pins, two for powering the module, the VCC and the GND pins, and four more pins for the SPI communication. Here’s how we need to connect it to the Arduino Board.

Note that each Arduino Board have different SPI pins which should be connected accordingly.

You can get the components needed for this Arduino Tutorial from the links below:

  • Micro SD Card Module……………….. Amazon / Banggood / AliExpress
  • Arduino Board …………………………… Amazon / Banggood / AliExpress
  • Breadboard and Jump Wires ……… Amazon / Banggood / AliExpress

Disclosure: These are affiliate links. As an Amazon Associate I earn from qualifying purchases.

Когда нужна SD-карта

Некоторые проекты могут собирать большое количество данных, таких как данные датчиков, считываемые в течение месяца, которые вы хотите хранить постоянно. Этот большой объем данных, вероятно, не поместится в EEPROM. Кроме того, вы не сможете удобным образом перенести информацию на компьютер таким способом.

Тем не менее, если вы храните данные на SD-карте, вы можете легко переносить созданные файлы и работать с ними на любом компьютере с устройством для чтения SD-карт.

Эта статья покажет как подключить и использовать стандартный модуль SD-карты с Arduino. Весь код и тестовые программы можно найти в виде zip-файла в конце этой статьи.

MicroSD card module Interfacing with Arduino

Required Hardware:

Following components are required:

  • 1 x Arduino board
  • MicroSD card
  • 1 x MicroSD card module

Now, we will show you how to connect the microSD card module and the Arduino board together. There are different versions of the Arduino boards including Arduino Uno, Arduino Mega, and Arduino Nano. The Uno/ Nano and Mega have different default SPI pins. The table below shows the default SPI pins for the three Arduino boards.

Arduino UNO Arduino Mega Arduino Nano
MOSI 11 51 11
MISO 12 50 12
SCK 13 52 13
CS 10 53 10

You can use any of the Arduino boards mentioned above but remember to use the correct SPI pins for connection of the microSD card module and Arduino. For this article, we will be using the Arduino Uno board. The figure below shows the default SPI pins of Arduino Uno.

Arduino UNO default SPI pins

Now let us see how to connect the microSD card module and the Arduino Uno board. The table below shows the connections between the two devices:

MicroSD card module Arduino UNO
GND GND
VCC 5V
CS GPIO10
MOSI GPIO11
SCK GPIO13
MISO GPIO12

As shown from the table, we will connect the VCC terminal of the MicroSD card module with 5V of Arduino Uno board. Both grounds will be common. The default SPI GPIO pins of Arduino Uno are being used to connect with each of the remaining SPI terminals of the microSD card module.

Connection diagram of Arduino Uno with microSD card module

Now, as we know how to interface the microSD card module and the Arduino Uno together let us learn how to prepare the microSD card to handle files in Arduino IDE.

Notes on the Code

The sketch starts just like the previous one, with the card check, then pre-deletes the CSV file in preparation, and before you can select an option to run in the Serial window. The header (column names) is pre-written to the file.

QNH is an aviation term and used as a correction factor that when applied to an altimeter, will allow to accurately read the elevation above sea level at the current location. To learn more about this, please refer to our tutorial on Wireless Communication Between Two Arduinos.

Note that you don’t have to get this correction factor. However, without a corrected value, the altitude reading at your location will be incorrect and might even display negative.

The function kicks off with resetting the to 0 to refresh it, then gets a sort of timestamp with the function (the number of milliseconds elapsed since we started). It now needs to add this on to the end (appends) of the , and also add the comma-separated variable. is a little confusing. You would expect something like this: . But that’s not how it actually works. A buffer is a temporary storage to hold the result.

4Чтение данных из флеш-памяти с помощью Arduino

Согласно документации, чтение из флешки выполняется посредством такой последовательности: отправка команды на чтение (1 байт), начальный адрес (3 байта), а далее запрашивается столько байтов, сколько хотим прочитать из ПЗУ. Собственно, мы будем передавать в ПЗУ 16 нулей. Так как SPI – синхронный интерфейс, нам в ответ вернутся 16 записанных в ПЗУ байтов. Вот такая диаграмма приводится в описании к микросхеме:

Диаграмма чтения данных из флеш-памяти 25L8005

Напишем скетч для чтения наших заветных 16-ти байт из микросхемы флеш-памяти 25L8005:

#include <SPI.h>

const int SSPin = 10;
const byte READ = 0x03;
const byte ADDR1 = 0;
const byte ADDR2 = 0;
const byte ADDR3 = 0;

void setup() {
  Serial.begin(9600);
  pinMode(SSPin, OUTPUT);
  SPI.begin();  
}

void loop() { 
  SPISettings mySet(100000, MSBFIRST, SPI_MODE0);
  SPI.beginTransaction(mySet);
  digitalWrite(SSPin, LOW);
  SPI.transfer(READ); 
  SPI.transfer(ADDR1);
  SPI.transfer(ADDR2);
  SPI.transfer(ADDR3);
  for (int i=0; i<16; i++) {
    byte data = SPI.transfer(0);
    Serial.print((char)data);
  }
  Serial.println();
  digitalWrite(SSPin, HIGH);
  SPI.endTransaction();
  delay(1000); // повторяем чтение каждую секунду
}

Загрузим скетч в Arduino и откроем монитор последовательных портов. В мониторе, как и ожидалось, 1 раз в секунду будет выводиться наш массив, считанный из флеш-памяти с помощью Arduino.

Чтение из флеш-памяти с помощью Arduino и вывод в монитор последовательных портов

Вот как выглядит чтение из ПЗУ, если подключиться к линиям SPI логическим анализатором:

Временная диаграмма чтения данных из ПЗУ по SPI

Как видно, байты этого массива соответствуют кодам ASCII строки «HELLO, SOLTAU.RU», которые мы и записали в микросхему памяти 25L8005

Когда нужна SD-карта

Некоторые проекты могут собирать большое количество данных, таких как данные датчиков, считываемые в течение месяца, которые вы хотите хранить постоянно. Этот большой объем данных, вероятно, не поместится в EEPROM. Кроме того, вы не сможете удобным образом перенести информацию на компьютер таким способом.

Тем не менее, если вы храните данные на SD-карте, вы можете легко переносить созданные файлы и работать с ними на любом компьютере с устройством для чтения SD-карт.

Эта статья покажет как подключить и использовать стандартный модуль SD-карты с Arduino. Весь код и тестовые программы можно найти в виде zip-файла в конце этой статьи.

Запись данных с модуля DS3231 на SD карту

Необходимые детали:► Arduino UNO R3 x 1 шт.► Модуль micro SD карт, SPI x 1 шт.► Часы реального времени DS3231 x 1 шт. ► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.► Кабель USB 2.0 A-B x 1 шт.

ПодключениеВ примере используем модуль micro SD карты и часы реального времени DS3231, с последнего будем считывать время и показания температуры (раз в три сукунды). Схема не сложная, собираем согласно рисунку ниже.

Для работы скетча необходимо три библиотеки «SD«, «SPI» и «DS3231» последняя библиотека не входит в среду разработки IDE Arduino, необходимо дополнительно установить ее, скачать можно конце статьи.

/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 15.02.2019г.
*/

#include <SD.h> // Подключаем библиотеку SD
#include <SPI.h> // Подключаем библиотеку SPI
#include <DS3231.h> // Подключаем библиотеку DS3231

File myFile;
DS3231 rtc(SDA, SCL);
const int chipSelect = 4; // Указываем к какому выводу подключен CS

void setup()
{
Serial.begin(9600); // Открытие последовательную связь
if (SD.begin())
{
Serial.println(«SD card is ready to use.»);
}
else
{
Serial.println(«SD card initialization failed»);
return;
}
rtc.begin();
}
void loop() {
Serial.print(rtc.getTimeStr()); // Печатаем считанное показания времени
Serial.print(«,»); // Печатаем символ «,»
Serial.println(int(rtc.getTemp())); // Печатаем считанное показания температуры

myFile = SD.open(«test.txt», FILE_WRITE); // Открытие файла, одновременно может быть открыт только один файл
if (myFile) {
myFile.print(rtc.getTimeStr()); // Запись текста в файл.
myFile.print(«,»); // Запись текста в файл.
myFile.println(int(rtc.getTemp())); // Запись текста в файл.
myFile.close(); // Закрываем файла
}
else {
Serial.println(«error opening test.txt»); // Печатаем текст, если не удалось открыть файл
}
delay(3000); // Пауза 3с
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 15.02.2019г.

*/

 
#include <SD.h>                                 // Подключаем библиотеку SD
#include <SPI.h>                                // Подключаем библиотеку SPI
#include <DS3231.h>                             // Подключаем библиотеку DS3231
 

File myFile;

DS3231  rtc(SDA,SCL);

constintchipSelect=4;// Указываем к какому выводу подключен CS

voidsetup()

{

Serial.begin(9600);// Открытие последовательную связь

if(SD.begin())

{

Serial.println(«SD card is ready to use.»);

}

else

{

Serial.println(«SD card initialization failed»);

return;

}

rtc.begin();

}

voidloop(){

Serial.print(rtc.getTimeStr());// Печатаем считанное показания времени

Serial.print(«,»);// Печатаем символ «,»

Serial.println(int(rtc.getTemp()));// Печатаем считанное показания температуры

myFile=SD.open(«test.txt»,FILE_WRITE);// Открытие файла, одновременно может быть открыт только один файл

if(myFile){

myFile.print(rtc.getTimeStr());// Запись текста в файл.

myFile.print(«,»);// Запись текста в файл.

myFile.println(int(rtc.getTemp()));// Запись текста в файл.

myFile.close();// Закрываем файла

}

else{

Serial.println(«error opening test.txt»);// Печатаем текст, если не удалось открыть файл

}

delay(3000);// Пауза 3с

}

После загрузки скетча Arduino начнет сохранять значения температуры каждые 3 секунды.

Теперь, через некоторое время можно подключить SD карту к компьютеру и открыть файл «TEST.txt», чтобы увидеть результаты.

При необходимости можно создать линейный график.

Ссылки  Библиотека libraries-DS3231

Купить на Aliexpress  Контроллер Arduino UNO R3 на CH340G  Контроллер Arduino UNO R3 на Atmega16U2  Провода DuPont, 2,54 мм, 20 см  Модуль SD кары, SPI  Часы реального времени RTC DS3231

Описание модуля для SD карты памяти

Работа с памятью SD в ардуино не представляет особых трудностей. Самым простым способом является подключение готового модуля и использование стандартной библиотеки. С этого варианта мы и начнем.

Универсальный модуль представляет собой обыкновенную плату, на которой помещены слот для карты, резисторы и регулятор напряжений. Он обладает следующими техническими характеристиками:

  • Диапазон рабочих напряжений 4,5-5 В;
  • Поддержка SD карты до 2 Гб;
  • Ток 80 мА;
  • Файловая система FAT 16.

Модуль SD-карты реализует такие функции как хранение, чтение и запись информации на карту, которая требуется для нормального функционирования прибора на базе микроконтроллера.

Естественно, у недорогих модулей карт памяти есть и недостатки. Например, самые дешевые и распространенные модели поддерживают только карты до 4Гб и почти все модули позволяют хранить на SD карте файлы объемом до двух гигабайт – это ограничение используемой в большинстве моделей файловой системы FAT.

Еще одним недостатком карт памяти является относительно долгое время записи, однако существуют пути работы с ней, позволяющие увеличить ее скорость работы. Для этого используется механизм кэширования, когда данные сначала копятся в оперативной памяти, а потом сбрасываются за раз на карту памяти.

Платы Arduino для работы с SD

Для работы с SD card существует несколько различных плат:

  • Arduino Ethernet – эта плата оснащена специальным модулем для вывода данных. Для выхода CS используется контакт 4. Для правильной работы нужно применять команду SD.begin(4).
  • Adafruit Micro-SD – это отладочная плата, которая используется при работе с Micro-SD картами.
  • Sparkfun SD – закрепляется сверху Ардуино, для выхода CS использует 8 контакт. В новой версии платы есть соединение с 3.3 В и встроен шестиразрядный инвертор.

Библиотека ардуино для работы с SD и microSD

Для удобства работы с внешними накопителями данных в среде Arduino IDE доступны уже готовые библиотеки. Ничего дополнительно скачивать или устанавливать в большинстве случаев не понадобится.

Для подключения библиотеки в скетче нужно использовать инструкцию include:

Библиотека SPI нужна для правильной работы устройств, подключаемых по SPI.

Библиотечные функции нужно для считывания и записи данных на карту. Библиотека может поддерживать SD и SDHC карты.

Имена записываются в формате 8.3, то есть 8 знаков для названия, 3 для расширения. Путь к файлу записывается с помощью слэшей «/».

Встроенные примеры библиотеки SD

В Arduino IDE встроены готовые примеры для быстрого изучение функций бибилотеки:

Card Info – это извлечение информации, хранящейся в SD карте. С ее помощью можно узнать, в какую файловую систему отформатирована карта, наличие свободного места, какие данные записаны.
Yun Datalogger – позволяет записывать лог-данные с трех сенсоров на карту.
Datalogger – регистрирует и созраняет данные, полученные с датчика на карту.
Dump File – считывание данные с карты, передает их в серийный порт.
Files – создает и удаляет данные. Существует функция file.write(), которая помещает записанные данные в буфер

Перемещение информации на карту происходит при вызове функций flush() или close(), поэтому важно закрывать его после каждого открытия файла, иначе данные будут потеряны.
Read Write – записывает и считывает файлы с карты.

Функции библиотеки SD

Ардуино-библиотека SD содержит различные функции, с помощью которыми можно управлять данными. Функции класса SD:

begin() – функция инициализирует библиотеку, присваивает контакт для сигнала.
exists() – призвана проверить, имеется ли на карте необходимая информация.
mkdir() – позволяет создать нужную папку на карте памяти.
rmdir() – с помощью этой функции можно удалить папку

Важно, чтобы удаляемая папка была пустой.
open() – позволяет открыть файл, который нужен для записи или чтения. Если нужный файл отсутствует на карте, то он будет создан.
remove() – удаляет любой файл.

В ответ на все эти функции должно прийти одно из значений – true, в случае удачного завершения операции и false при неудаче.

Создание, редактирование и удаление файлов.

Для работы с файлами в ардуино существует класс File. В него входят функции, которые предназначены для записи и чтения информации с карты:

  • available() – проверяет наличие в файле байт, которые доступны для чтения. В ответ приходит количество места, которое доступно для чтения.
  • close() – закрывает файл, перед эти проверяет, сохранены ли данные на карту.
  • flush() – функция позволяет убедиться, что данные записаны на карту.
  • name() – возвращает указатель на имя.
  • peek() – считывает байты данных, при этом не перемещает указатель на следующий символ.
  • position() – находит текущее положение указателя в файле.
  • print() – выводит данные в отдельный файл.
  • println() – печатает данные в файл до места, где появляется символ перевода каретки и пустая строка.
  • seek() – меняет положение текущей позиции в файле.
  • size() – выводит информацию о размере данных.
  • read() – считывает информацию.
  • write() – производит запись в файл.
  • isDirectory() – с помощью этого метода происходит проверка, является ли файл директорией, то есть каталогом или папкой.
  • openNextFile() – выводит имя последующего файла.
  • rewindDirectory() – возвращает к первому файлу в директории.

Для корректной работы платы нужно проследить, чтобы был сконфигурирован SS выход.

Подключаем SD-карту к нашему Ардуино

В большинстве проектов с Ардуино необходимо устанавливать вспомогательное хранилище для медиафайлов, будь это видео или аудио. Если возникает необходимость хранить и обрабатывать информацию, а стоковой флеш-памяти плат вам не хватает, то есть несколько решений.

Можно докупить специальную плату, обеспечивающую быстрый доступ к данным, но и стоящую не малых денег. Если же у вас нет желания тратиться, то расширить стоковую память платы можно и с arduino card SD, дабы не было проблем с записью и стиранием стоковых утилит с чипов. Однако далеко не все новички знают, как правильно подключать флешку к чипу и что для этого нужно. Давайте разберёмся во всех нюансах и узнаем, какие подводные камни такого решения вас поджидают.

Подключение SD и microSD к ардуино

Существует два вида карт – microSD и SD. Они одинаковы по подключению, структуре и программе, различаются же только размером. Перед работой советуется отформатировать карту SD. Обычно новые карты уже отформатированы и готовы к работе, но если используется старая карта, то лучше провести форматирование в файловой системе Arduino. Для проведения процедуры на компьютере должна быть установлена библиотека SD, желательно FAT16. Для форматирования на Windows нужно щелкнуть на иконке карты и нажать “Format”.

Для подключения карты используется 6 контактов, взаимодействие производится по интерфейсу SPI. Она выглядит на плате как разъем на лицевой поверхности с шестью штырями. Чтобы подключить карту, нужны сам контроллер, модуль карты и 6 проводов. Помимо SPI существует режим SDIO, но он сложен в реализации и слабо совместим с Ардуино. SPI легко налаживается для работы со всеми микроконтроллерами, поэтому советуется использовать именно его.

Подключение цифровых выводов производится так: для платы Arduino Nano или Uno контакт MOSI подключается к D11, MISO к D12,SCK к D13, CS к 4, VCC на +5 В,.GND к GND. На плате имеются разъемы для подключения к 3,3 и 5 вольтам. Питание самой карты составляет 3,3 вольт, поэтому проще применять микроконтроллер с таким же питанием, в ином случае нужен преобразователей уровней напряжения. На самых распространенных платах ардуино такой выход есть.

При подключении SD карты нужно учитывать соответствие SPI контактов для разных тип плат Arduino:

Плата Пин MOSI Пин MISO Пин SCK
Arduino Nano, Uno 11 12 13
Arduino Mega2560 51 50 52

Xiaomi redmi 9 медленно заряжается — Что делать

Опубликовано: 21.10.2020 Если после какого-то промежутка времени Xiaomi redmi 9 медленно заряжается, то на это стоит обратить внимание. Ведь время заряда будет только увеличиваться, если ни чего не предпринимать

Вот несколько случаев. У меня Редми 9 начал внезапно заряжаться током 0,40 ампер. А, всегда заряжался током 2 Ампера. Порой можно на ночь поставить он не зарядится. Так как отключается зарядка, что делать? Хиаоми заряжается долго, а когда он на зарядке и я им пользуюсь. Сяоми разряжается в чем проблема? Проблема в usb разъеме, контакт плохой с платой и ПО, отключает зарядку. Лечиться заменой разъема Сяоми, я так делал. Очень долго заряжается Ксаоми за 8 часов, зародился на 30%, помогите отремонтировать. Содержание1 Xiaomi…

Описание модуля для SD карты памяти

Работа с памятью SD в ардуино не представляет особых трудностей. Самым простым способом является подключение готового модуля и использование стандартной библиотеки. С этого варианта мы и начнем.

Универсальный модуль представляет собой обыкновенную плату, на которой помещены слот для карты, резисторы и регулятор напряжений. Он обладает следующими техническими характеристиками:

  • Диапазон рабочих напряжений 4,5-5 В;
  • Поддержка SD карты до 2 Гб;
  • Ток 80 мА;
  • Файловая система FAT 16.

Модуль SD-карты реализует такие функции как хранение, чтение и запись информации на карту, которая требуется для нормального функционирования прибора на базе микроконтроллера.

Естественно, у недорогих модулей карт памяти есть и недостатки. Например, самые дешевые и распространенные модели поддерживают только карты до 4Гб и почти все модули позволяют хранить на SD карте файлы объемом до двух гигабайт – это ограничение используемой в большинстве моделей файловой системы FAT.

Еще одним недостатком карт памяти является относительно долгое время записи, однако существуют пути работы с ней, позволяющие увеличить ее скорость работы. Для этого используется механизм кэширования, когда данные сначала копятся в оперативной памяти, а потом сбрасываются за раз на карту памяти.

Платы Arduino для работы с SD

Для работы с SD card существует несколько различных плат:

  • Arduino Ethernet – эта плата оснащена специальным модулем для вывода данных. Для выхода CS используется контакт 4. Для правильной работы нужно применять команду SD.begin(4).
  • Adafruit Micro-SD – это отладочная плата, которая используется при работе с Micro-SD картами.
  • Sparkfun SD – закрепляется сверху Ардуино, для выхода CS использует 8 контакт. В новой версии платы есть соединение с 3.3 В и встроен шестиразрядный инвертор.

Немного о мониторинге и тестировании мироксервисной системы

Есть инструменты, которые позволяют развертывать такую систему и следить за ней, например, ZooKeeper, который решает проблему конфигурирования за нас. Также есть такие инструменты типа Logstash, Kibana, Elastic, Serilog, Amazon Cloud Watch. Все они следят за вашими сервисами.

Как тестировать микросервисную систему? Я вижу это следующим образом. У вас есть сервис, который решает какую-то бизнес-задачу. Ваша цель — протестировать его бизнес-контракты. Большинство тестов, которые вы делаете — модульные, которые для кода, написанного в рамках этого сервиса. Это — низ пирамиды тестирования. Следующий уровень — интеграционное тестирование, которое проверяет, как этот сервис отвечает на стандартные запросы. Тут у вас огромное пространство для интеграционного тестирования кода, написанного изолированно. Следующий этап — использование разных инструментов, чтобы гарантировать, что контракт не поменялся. В нашем проекте мы использовали Swagger, который позволяет зафиксировать контракт.

Заключение

Уважаемые читатели, сегодня мы разобрали все вопросы, касающиеся режима «только для чтения» флешки: как сделать его и убрать, почему он мог появиться. Если вы не смогли ничего сделать с флешкой, то можно воспользоваться интересным советом. Он подходит больше для людей, у которых на носителе информации хранятся фотографии, видео и документы.

  • Фотографии можно по отдельности открывать и делать снимки экрана. Пусть это будут не оригинальные фотографии или картинки, но зато они будут хотя бы в таком виде целые и невредимые. Всё лучше, чем ничего, как говорится.
  • Видео тоже можно сохранить аналогичным образом. Для этого понадобится установка дополнительного программного обеспечения для захвата видео с экрана компьютера или ноутбука.
  • Если у вас есть документ Word, например, то можете попробовать скопировать его текст и вставить в новый файл на вашем рабочем столе. Если они небольшие, то можно набрать их заново.
Понравилась статья? Поделиться с друзьями:
Зинг-Электро
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: