دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Кармин Новиелло
سری:
ناشر: Leanpub book
سال نشر: 2018
تعداد صفحات: [826]
زبان: Russian
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 45 Mb
در صورت تبدیل فایل کتاب Освоение STM32. Пошаговое руководство по самой полной платформе ARM Cortex-M, использующей бесплатную и мощную среду разработки на основе Eclipse и GCC به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب تسلط بر STM32. راهنمای گام به گام کاملترین پلتفرم ARM Cortex-M با استفاده از یک محیط توسعه رایگان و قدرتمند مبتنی بر Eclipse و GCC نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Оглавление Предисловие Почему я написал книгу? Для кого эта книга? Как использовать эту книгу? Как организована книга? Об авторе Ошибки и предложения Поддержка книги Как помочь автору Отказ от авторского права Благодарность за участие Перевод Благодарности I Введение 1. Введение в ассортимент микроконтроллеров STM32 1.1. Введение в процессоры на базе ARM 1.1.1. Cortex и процессоры на базе Cortex-M 1.1.1.1. Регистры ядра 1.1.1.2. Карта памяти 1.1.1.3. Технология битовых лент (bit-banding) 1.1.1.4. Thumb-2 и выравнивание памяти 1.1.1.5. Конвейер 1.1.1.6. Обработка прерываний и исключений 1.1.1.7. Системный таймер SysTick 1.1.1.8. Режимы питания 1.1.1.9. CMSIS 1.1.1.10. Внедренные функции Cortex-M в ассортименте STM32 1.2. Введение в микроконтроллеры STM32 1.2.1. Преимущества ассортимента STM32…. 1.2.2. ….И его недостатки 1.3. Краткий обзор подсемейств STM32 1.3.1. Серия F0 1.3.2. Серия F1 1.3.3. Серия F2 1.3.4. Серия F3 1.3.5. Серия F4 1.3.6. Серия F7 1.3.7. Серия H7 1.3.8. Серия L0 1.3.9. Серия L1 1.3.10. Серия L4 1.3.11. Серия L4+ 1.3.12. Серия STM32WB 1.3.13. Как правильно выбрать для себя микроконтроллер? 1.4. Отладочная плата Nucleo 2. Установка инструментария 2.1. Почему выбирают Eclipse/GCC в качестве инструментария для STM32 2.1.1. Два слова о Eclipse… 2.1.2. … и о GCC 2.2. Windows – Установка инструментария 2.2.1. Windows – Установка Eclipse 2.2.2. Windows – Установка плагинов Eclipse 2.2.3. Windows – Установка GCC ARM Embedded 2.2.4. Windows – Установка инструментов сборки 2.2.5. Windows – Установка OpenOCD 2.2.6. Windows – Установка инструментов ST и драйверов 2.2.6.1. Windows – Обновление микропрограммного обеспечения ST-LINK 2.3. Linux – Установка инструментария 2.3.1. Linux – Установка библиотек среды выполнения i386 на 64-разрядную ОС Ubuntu 2.3.2. Linux – Установка Java 2.3.3. Linux – Установка Eclipse 2.3.4. Linux – Установка плагинов Eclipse 2.3.5. Linux – Установка GCC ARM Embedded 2.3.6. Linux – Установка драйверов Nucleo 2.3.6.1. Linux – Обновление микропрограммного обеспечения ST-LINK 2.3.7. Linux – Установка OpenOCD 2.3.8. Linux – Установка инструментов ST 2.4. Mac – Установка инструментария 2.4.1. Mac – Установка Eclipse 2.4.2. Mac – Установка плагинов Eclipse 2.4.3. Mac – Установка GCC ARM Embedded 2.4.4. Mac – Установка драйверов Nucleo 2.4.4.1. Mac – Обновление микропрограммного обеспечения ST-LINK 2.4.5. Mac – Установка OpenOCD 2.4.6. Mac – Установка инструментов ST 3. Hello, Nucleo! 3.1. Прикоснитесь к Eclipse IDE 3.2. Создание проекта 3.3. Подключение Nucleo к ПК 3.4. Перепрограммирование Nucleo с использованием STM32CubeProgrammer 3.5. Изучение сгенерированного кода 4. Инструмент STM32CubeMX 4.1. Введение в инструмент CubeMX 4.1.1. Представление Pinout 4.1.1.1. Представление Chip 4.1.1.2. IP tree pane 4.1.2. Представление Clock Configuration 4.1.3. Представление Configuration 4.1.4. Представление Power Consumption Calculator 4.2. Генерация проекта 4.2.1. Генерация проекта Си при помощи CubeMX 4.2.1.1. Изучение сгенерированного кода 4.2.2. Создание проекта Eclipse 4.2.3. Ручное импортирование сгенерированных файлов в проект Eclipse 4.2.4. Автоматический импорт файлов, созданных с помощью CubeMX, в проект Eclipse 4.3. Изучение сгенерированного кода приложения 4.3.1. Добавим что-нибудь полезное в микропрограмму 4.4. Загрузка исходного кода примеров книги 5. Введение в отладку 5.1. Начало работы с OpenOCD 5.1.1. Запуск OpenOCD 5.1.1.1. Запуск OpenOCD на Windows 5.1.1.2. Запуск OpenOCD на Linux и на MacOS X 5.1.2. Подключение к OpenOCD Telnet Console 5.1.3. Настройка Eclipse 5.1.4. Отладка в Eclipse 5.2. Полухостинг ARM 5.2.1. Включение полухостинга в новом проекте 5.2.1.1. Использование полухостинга со Стандартной библиотекой Си 5.2.2. Включение полуохостинга в существующем проекте 5.2.3. Недостатки полухостинга 5.2.4. Как работает полухостинг II Погружение в HAL 6. Управление GPIO 6.1. Отображение периферийных устройств STM32 и дескрипторы HAL 6.2. Конфигурация GPIO 6.2.1. Режимы работы GPIO 6.2.2. Режим альтернативной функции GPIO 6.2.3. Понятие скорости GPIO 6.3. Управление GPIO 6.4. Деинициализация GPIO 7. Обработка прерываний 7.1. Контроллер NVIC 7.1.1. Таблица векторов в STM32 7.2. Разрешение прерываний 7.2.1. Линии запроса внешних прерываний и контроллер NVIC 7.2.2. Разрешение прерываний в CubeMX 7.3. Жизненный цикл прерываний 7.4. Уровни приоритета прерываний 7.4.1. Cortex-M0/0+ 7.4.2. Cortex-M3/4/7 7.4.3. Установка уровня прерываний в CubeMX 7.5. Реентерабельность прерываний 7.6. Разовое маскирование всех прерываний или на приоритетной основе 8. Универсальные асинхронные последовательные средства связи 8.1. Введение в UART и USART 8.2. Инициализация UART 8.2.1. Конфигурация UART с использованием CubeMX 8.3. UART-связь в режиме опроса 8.3.1. Установка консоли последовательного порта в Windows 8.3.2. Установка консоли последовательного порта в Linux и MacOS X 8.4. UART-связь в режиме прерываний 8.4.1. Прерывания, относящиеся к UART 8.5. Обработка ошибок 8.6. Перенаправление ввода-вывода 9. Управление DMA 9.1. Введение в DMA 9.1.1. Необходимость DMA и роль внутренних шин 9.1.2. Контроллер DMA 9.1.2.1. Реализация DMA в микроконтроллерах F0/F1/F3/L1 9.1.2.2. Реализация DMA в микроконтроллерах F2/F4/F7 9.1.2.3. Реализация DMA в микроконтроллерах L0/L4 9.2. Модуль HAL_DMA 9.2.1. DMA_HandleTypeDef в HAL для F0/F1/F3/L0/L1/L4 9.2.2. DMA_HandleTypeDef в HAL для F2/F4/F7 9.2.3. DMA_HandleTypeDef в HAL для L0/L4 9.2.4. Как выполнять передачи в режиме опроса 9.2.5. Как выполнять передачи в режиме прерываний 9.2.6. Как выполнять передачи типа периферия-в-периферию 9.2.7. Использование модуля HAL_UART для передачи в режиме DMA 9.2.8. Разнообразные функции модулей HAL_DMA и HAL_DMA_Ex 9.3. Использование CubeMX для конфигурации запросов к DMA 9.4. Правильное выделение памяти буферам DMA 9.5. Пример из практики: анализ производительности передачи типа память-в-память модулем DMA 10. Схема тактирования 10.1. Распределение тактового сигнала 10.1.1. Обзор схемы тактирования STM32 10.1.1.1. Многочастотный внутренний RC-генератор в семействах STM32L 10.1.2. Конфигурирование схемы тактирования с помощью CubeMX 10.1.3. Варианты источников тактового сигнала в платах Nucleo 10.1.3.1. Подача тактового сигнала от высокочастотного генератора 10.1.3.2. Подача тактового сигнала от 32кГц генератора 10.2. Обзор модуля HAL_RCC 10.2.1. Вычисление тактовой частоты во время выполнения 10.2.2. Разрешение Выхода синхронизации 10.2.3. Разрешение Системы защиты тактирования 10.3. Калибровка HSI-генератора 11. Таймеры 11.1. Введение в таймеры 11.1.1. Категории таймеров в микроконтроллере STM32 11.1.2. Доступность таймеров в ассортименте STM32 11.2. Базовые таймеры 11.2.1. Использование таймеров в режиме прерываний 11.2.1.1. Генерация временного отсчета в таймерах расширенного управления 11.2.2. Использование таймеров в режиме опроса 11.2.3. Использование таймеров в режиме DMA 11.2.4. Остановка таймера 11.2.5. Использование CubeMX для конфигурации базового таймера 11.3. Таймеры общего назначения 11.3.1. Генератор временного отсчета с внешними источниками тактового сигнала 11.3.1.1. Режим внешнего тактирования 2 11.3.1.2. Режим внешнего тактирования 1 11.3.1.3. Использование CubeMX для конфигурации источника тактового сигнала таймера общего назначения 11.3.2. Режимы синхронизации ведущего/ведомого таймеров 11.3.2.1. Разрешение прерываний, относящихся к триггерной цепи 11.3.2.2. Использование CubeMX для конфигурации синхронизации ведущего/ведомого устройств 11.3.3. Программная генерация связанных с таймером событий 11.3.4. Режимы отсчета 11.3.5. Режим захвата входного сигнала 11.3.5.1. Использование CubeMX для конфигурации режима захвата входного сигнала 11.3.6. Режим сравнения выходного сигнала 11.3.6.1. Использование CubeMX для конфигурации режима сравнения выходного сигнала 11.3.7. Генерация широтно-импульсного сигнала 11.3.7.1. Генерация синусоидального сигнала при помощи ШИМ 11.3.7.2. Использование CubeMX для конфигурации режима ШИМ 11.3.8. Одноимпульсный режим 11.3.8.1. Использование CubeMX для конфигурации одноимпульсного режима 11.3.9. Режим энкодера 11.3.9.1. Использование CubeMX для конфигурации режима энкодера 11.3.10. Другие функции, доступные в таймерах общего назначения и расширенного управления 11.3.10.1. Режим датчика Холла 11.3.10.2. Комбинированный режим трехфазной ШИМ и другие функции управления двигателем 11.3.10.3. Вход сброса таймера и блокировка регистров таймера 11.3.10.4. Предварительная загрузка регистра автоперезагрузки 11.3.11. Отладка и таймеры 11.4. Системный таймер SysTick 11.4.1. Использование другого таймера в качестве источника системного временного отсчета 11.5. Пример из практики: как точно измерить микросекунды с помощью микроконтроллеров STM32 12. Аналого-цифровое преобразование 12.1. Введение в АЦП последовательного приближения 12.2. Модуль HAL_ADC 12.2.1. Режимы преобразования 12.2.1.1. Режим однократного преобразования одного канала 12.2.1.2. Режим сканирования с однократным преобразованием 12.2.1.3. Режим непрерывного преобразования одного канала 12.2.1.4. Режим сканирования с непрерывным преобразованием 12.2.1.5. Режим преобразования инжектированных каналов 12.2.1.6. Парный режим 12.2.2. Выбор канала 12.2.3. Разрядность АЦП и скорость преобразования 12.2.4. Аналого-цифровые преобразования в режиме опроса 12.2.5. Аналого-цифровые преобразования в режиме прерываний 12.2.6. Аналого-цифровые преобразования в режиме DMA 12.2.6.1. Многократное преобразование одного канала в режиме DMA 12.2.6.2. Многократные и не непрерывные преобразования в режиме DMA 12.2.6.3. Непрерывные преобразования в режиме DMA 12.2.7. Обработка ошибок 12.2.8. Преобразования, управляемые таймером 12.2.9. Преобразования, управляемые внешними событиями 12.2.10. Калибровка АЦП 12.3. Использование CubeMX для конфигурации АЦП 13. Цифро-аналоговое преобразование 13.1. Введение в периферийное устройство ЦАП 13.2. Модуль HAL_DAC 13.2.1. Управление ЦАП вручную 13.2.2. Управление ЦАП в режиме DMA с использованием таймера 13.2.3. Генерация треугольного сигнала 13.2.4. Генерация шумового сигнала 14. I2C 14.1. Введение в спецификацию I²C 14.1.1. Протокол I²C 14.1.1.1. START- и STOP-условия 14.1.1.2. Формат байта 14.1.1.3. Кадр адреса 14.1.1.4. Биты «Подтверждено» (ACK) и «Не подтверждено» (NACK) 14.1.1.5. Кадры данных 14.1.1.6. Комбинированные транзакции 14.1.1.7. Удержание синхросигнала 14.1.2. Наличие периферийных устройств I²C в микроконтроллерах STM32 14.2. Модуль HAL_I2C 14.2.1. Использование периферийного устройства I²C в режиме ведущего 14.2.1.1. Операции I/O MEM 14.2.1.2. Комбинированные транзакции 14.2.1.3. Замечание о конфигурации тактирования в семействах STM32F0/L0/L4 14.2.2. Использование периферийного устройства I²C в режиме ведомого 14.3. Использование CubeMX для конфигурации периферийного устройства I²C 15. SPI 15.1. Введение в спецификацию SPI 15.1.1. Полярность и фаза тактового сигнала 15.1.2. Управление сигналом Slave Select 15.1.3. Режим TI периферийного устройства SPI 15.1.4. Наличие периферийных устройств SPI в микроконтроллерах STM32 15.2. Модуль HAL_SPI 15.2.1. Обмен сообщениями с использованием периферийного устройства SPI 15.2.2. Максимальная частота передачи, достижимая при использовании CubeHAL 15.3. Использование CubeMX для конфигурации периферийного устройства SPI 16. Циклический контроль избыточности 16.1. Введение в расчет CRC 16.1.1. Расчет CRC в микроконтроллерах STM32F1/F2/F4/L1 16.1.2. Периферийное устройство CRC в микроконтроллерах STM32F0/F3/F7/L0/L4 16.2. Модуль HAL_CRC 17. Независимый и оконный сторожевые таймеры 17.1. Независимый сторожевой таймер 17.1.1. Использование CubeHAL для программирования таймера IWDG 17.2. Системный оконный сторожевой таймер 17.2.1. Использование CubeHAL для программирования таймера WWDG 17.3. Отслеживание системного сброса, вызванного сторожевым таймером 17.4. Заморозка сторожевых таймеров во время сеанса отладки 17.5. Выбор сторожевого таймера, подходящего для вашего приложения 18. Часы реального времени 18.1. Введение в периферийное устройство RTC 18.2. Модуль HAL_RTC 18.2.1. Установка и получение текущей даты/времени 18.2.1.1. Правильный способ чтения значений даты/времени 18.2.2. Конфигурирование будильников 18.2.3. Блок периодического пробуждения 18.2.4. Генерация временной отметки и обнаружение несанкционированного доступа 18.2.5. Калибровка RTC 18.2.5.1. Грубая калибровка RTC 18.2.5.2. Тонкая калибровка RTC 18.2.5.3. Обнаружение опорного тактового сигнала 18.3. Использование резервной SRAM III Дополнительные темы 19. Управление питанием 19.1. Управление питанием в микроконтроллерах на базе Cortex-M 19.2. Как микроконтроллеры Cortex-M управляют рабочим и спящим режимами 19.2.1. Переход в/выход из спящих режимов 19.2.1.1. «Спящий режим по выходу» 19.2.2. Спящие режимы в микроконтроллерах на базе Cortex-M 19.3. Управление питанием в микроконтроллерах STM32F 19.3.1. Источники питания 19.3.2. Режимы питания 19.3.2.1. Рабочий режим 19.3.2.1.1. Динамическое изменение напряжения в микроконтроллерах STM32F4/F7 19.3.2.1.2. Режим высоко-/малоинтенсивной работы в микроконтроллерах STM32F4/F7 19.3.2.2. Спящий режим 19.3.2.3. Режим останова 19.3.2.4. Режим ожидания 19.3.2.5. Пример работы в режимах пониженного энергопотребления 19.3.3. Важное предупреждение о микроконтроллерах STM32F1 19.4. Управление питанием в микроконтроллерах STM32L 19.4.1. Источники питания 19.4.2. Режимы питания 19.4.2.1. Рабочие режимы 19.4.2.2. Спящие режимы 19.4.2.2.1. Режим пакетного сбора данных 19.4.2.3. Режимы останова 19.4.2.4. Режимы ожидания 19.4.2.5. Режим выключенного состояния 19.4.3. Переходы между режимами питания 19.4.4. Периферийные устройства с пониженным энергопотреблением 19.4.4.1. LPUART 19.4.4.2. LPTIM 19.5. Инспекторы источников питания 19.6. Отладка в режимах пониженного энергопотребления 19.7. Использование калькулятора энергопотребления CubeMX 19.8. Пример из практики: использование сторожевых таймеров в режимах пониженного энергопотребления 20. Организация памяти 20.1. Модель организации памяти в STM32 20.1.1. Основы процессов компиляции и компоновки 20.2. Действительно минимальное приложение STM32 20.2.1. Исследование бинарного ELF-файла 20.2.2. Инициализация секций .data и .bss 20.2.2.1. Пара слов о секции COMMON 20.2.3. Секция .rodata 20.2.4. Области Стека и Кучи 20.2.5. Проверка размера Кучи и Стека на этапе компиляции 20.2.6. Различия с файлами скриптов инструментария 20.3. Как использовать CCM-память 20.3.1. Перемещение таблицы векторов в CCM-память 20.4. Как использовать модуль MPU в микроконтроллерах STM32 на базе Cortex-M0+/3/4/7 20.4.1. Программирование MPU с использованием CubeHAL 21. Управление Flash-памятью 21.1. Введение во Flash-память STM32 21.2. Модуль HAL_FLASH 21.2.1. Разблокировка Flash-памяти 21.2.2. Стирание Flash-памяти 21.2.3. Программирование Flash-памяти 21.2.4. Доступ к чтению Flash-памяти во время программирования и стирания 21.3. Байты конфигурации 21.3.1. Защита от чтения Flash-памяти 21.4. Дополнительные памяти OTP и EEPROM 21.5. Задержка чтения Flash-памяти и ускоритель ART™ Accelerator 21.5.1. Роль TCM-памятей в микроконтроллерах STM32F7 21.5.1.1. Как обратиться к Flash-памяти через интерфейс TCM 21.5.1.2. Использование CubeMX для конфигурации интерфейса Flash-памяти 22. Процесс начальной загрузки 22.1. Единая система памяти Cortex-M и процесс начальной загрузки 22.1.1. Программное физическое перераспределение памяти 22.1.2. Перемещение таблицы векторов 22.1.3. Запуск микропрограммы из SRAM с помощью инструментария GNU MCU Eclipse 22.2. Встроенный загрузчик 22.2.1. Запуск загрузчика из встроенного программного обеспечения 22.2.2. Последовательность начальной загрузки в инструментарии GNU MCU Eclipse 22.3. Разработка пользовательского загрузчика 22.3.1. Перемещение таблицы векторов в микроконтроллерах STM32F0 22.3.2. Как использовать инструмент flasher.py 23. Запуск FreeRTOS 23.1. Введение в концепции, лежащие в основе ОСРВ 23.2. Введение во FreeRTOS и в оболочку CMSIS-RTOS 23.2.1. Структура файлов с исходным кодом FreeRTOS 23.2.1.1. Как импортировать FreeRTOS вручную 23.2.1.2. Как импортировать FreeRTOS с использованием CubeMX и CubeMXImporter 23.2.1.3. Как разрешить поддержку FPU в ядрах Cortex-M4F и Cortex-M7 23.3. Управление потоками 23.3.1. Состояния потоков 23.3.2. Приоритеты потоков и алгоритмы планирования 23.3.3. Добровольное освобождение от управления 23.3.4. Холостой поток idle 23.4. Выделение памяти и управление ею 23.4.1. Модель динамического выделения памяти 23.4.1.1. heap_1.c 23.4.1.2. heap_2.c 23.4.1.3. heap_3.c 23.4.1.4. heap_4.c 23.4.1.5. heap_5.c 23.4.1.6. Как использовать malloc() и связанные с ней функции Си с FreeRTOS 23.4.1.7. Определение кучи FreeRTOS 23.4.2. Модель статического выделения памяти 23.4.2.1. Выделение памяти потоку idle при использовании модели статического выделения памяти 23.4.3. Пулы памяти 23.4.4. Обнаружение переполнения стека 23.5. Примитивы синхронизации 23.5.1. Очереди сообщений 23.5.2. Cемафоры 23.5.3. Сигналы потоков 23.6. Управление ресурсами и взаимное исключение 23.6.1. Мьютексы 23.6.1.1. Проблема инверсии приоритетов 23.6.1.2. Рекурсивные мьютексы 23.6.2. Критические секции 23.6.3. Обработка прерываний совместно с ОСРВ 23.6.3.1. Приоритеты прерываний и API-функций FreeRTOS 23.7. Программные таймеры 23.7.1. Как FreeRTOS управляет таймерами 23.8. Пример из практики: Управление энергосбережением с ОСРВ 23.8.1. Перехват холостого потока idle 23.8.2. Бестиковый режим во FreeRTOS 23.8.2.1. Схема для бестикового режима 23.8.2.2. Пользовательский алгоритм бестикового режима 23.9. Возможности отладки 23.9.1. Макрос configASSERT() 23.9.2. Статистика среды выполнения и информация о состоянии потоков 23.10. Альтернативы FreeRTOS 23.10.1. ChibiOS 23.10.2. ОС Contiki 23.10.3. OpenRTOS 24. Продвинутые методы отладки 24.1. Введение в исключения отказов Cortex-M 24.1.1. Последовательность перехода в исключения Cortex-M и Соглашение ARM о вызовах 24.1.1.1. Как инструментарий GNU MCU Eclipse обрабатывает исключения отказов 24.1.1.2. Как интерпретировать содержимое регистра LR при переходе в исключение 24.1.2. Исключения отказов и их анализ 24.1.2.1. Исключение Memory Management 24.1.2.2. Исключение Bus Fault 24.1.2.3. Исключение Usage Fault 24.1.2.4. Исключение Hard Fault 24.1.2.5. Разрешение дополнительных обработчиков отказов 24.1.2.6. Анализ отказов в процессорах на базе Cortex-M0/0+ 24.2. Продвинутые возможности отладки в Eclipse 24.2.1. Представление Expressions 24.2.1.1. Мониторы памяти 24.2.2. Точки наблюдения 24.2.3. Режим Instruction Stepping Mode 24.2.4. Keil Packs и представление Peripheral Registers 24.2.5. Представление Core Registers 24.3. Средства отладки от CubeHAL 24.4. Внешние отладчики 24.4.1. Использование SEGGER J-Link для отладчика ST-LINK 24.4.2. Использование интерфейса ITM и трассировка SWV 24.5. STM Studio 24.6. Одновременная отладка двух плат Nucleo 25. Файловая система FAT 25.1. Введение в библиотеку FatFs 25.1.1. Использование CubeMX для включения в ваши проекты библиотеки FatFs 25.1.1.1. API-интерфейс Generic Disk Interface 25.1.1.2. Реализация драйвера доступа к SD-картам по SPI 25.1.2. Наиболее важные структуры и функции FatFs 25.1.2.1. Монтирование файловой системы 25.1.2.2. Открытие файлов 25.1.2.3. Чтение и запись файла 25.1.2.4. Создание и открытие каталога 25.1.3. Как сконфигурировать библиотеку FatFs 26. Разработка IoT-приложений 26.1. Решения, предлагаемые ST для разработки IoT-приложений 26.2. Ethernet контроллер W5500 26.2.1. Как использовать шилд W5500 и модуль ioLibrary_Driver 26.2.1.1. Конфигурирование интерфейса SPI 26.2.1.2. Настройка буферов сокетов и сетевого интерфейса 26.2.2. API-интерфейсы сокетов 26.2.2.1. Управление сокетами в режиме TCP 26.2.2.2. Управление сокетами в режиме UDP 26.2.3. Перенаправление ввода-вывода на сокет TCP/IP 26.2.4. Настройка HTTP-сервера 26.2.4.1. Веб-осциллограф 27. Начало работы над новым проектом 27.1. Проектирование оборудования 27.1.1. Послойная разводка печатной платы 27.1.2. Корпус микроконтроллера 27.1.3. Развязка выводов питания 27.1.4. Тактирование 27.1.5. Фильтрация вывода сброса RESET 27.1.6. Отладочный порт 27.1.7. Режим начальной загрузки 27.1.8. Обратите внимание на совместимость с выводами… 27.1.9. …и на выбор подходящей периферии 27.1.10. Роль CubeMX на этапе проектирования платы 27.1.11. Стратегии разводки платы 27.2. Разработка программного обеспечения 27.2.1. Генерация бинарного образа для производства Приложение A. Прочие функции HAL и особенности STM32 Принудительный сброс микроконтроллера из микропрограммы 96-битный уникальный идентификатор ЦПУ STM32 B. Руководство по поиску и устранению неисправностей Проблемы с установкой GNU MCU Eclipse Проблемы, связанные с Eclipse Eclipse не может найти компилятор Eclipse постоянно прерывается при выполнении каждой инструкции во время сеанса отладки Пошаговая отладка очень медленная Микропрограмма работает только в режиме отладки Проблемы, связанные с STM32 Микроконтроллер не загружается корректно Невозможно загрузить микропрограмму или отладить микроконтроллер C. Схема выводов Nucleo Nucleo-F446RE Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F411RE Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F410RB Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F401RE Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F334R8 Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F303RE Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F302R8 Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F103RB Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F091RC Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F072RB Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F070RB Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-F030R8 Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-L476RG Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-L152RE Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-L073R8 Разъемы, совместимые с Arduino Morpho-разъемы Nucleo-L053R8 Разъемы, совместимые с Arduino Morpho-разъемы D. Корпусы STM32 LFBGA LQFP TFBGA TSSOP UFQFPN UFBGA VFQFP WLCSP E. Изменения книги Выпуск 0.1 – Октябрь 2015 Выпуск 0.2 – 28 октября 2015 Выпуск 0.2.1 – 31 октября 2015 Выпуск 0.2.2 – 1 ноября 2015 Выпуск 0.3 – 12 ноября 2015 Выпуск 0.4 – 4 декабря 2015 Выпуск 0.5 – 19 декабря 2015 Выпуск 0.6 – 18 января 2016 Выпуск 0.6.1 – 20 января 2016 Выпуск 0.6.2 – 30 января 2016 Выпуск 0.7 – 8 февраля 2016 Выпуск 0.8 – 18 февраля 2016 Выпуск 0.8.1 – 23 февраля 2016 Выпуск 0.9 – 27 марта 2016 Выпуск 0.9.1 – 28 марта 2016 Выпуск 0.10 – 26 апреля 2016 Выпуск 0.11 – 27 мая 2016 Выпуск 0.11.1 – 3 июня 2016 Выпуск 0.11.2 – 24 июня 2016 Выпуск 0.12 – 4 июля 2016 Выпуск 0.13 – 18 июля 2016 Выпуск 0.14 – 12 августа 2016 Выпуск 0.15 – 13 сентября 2016 Выпуск 0.16 – 3 октября 2016 Выпуск 0.17 – 24 октября 2016 Выпуск 0.18 – 15 ноября 2016 Выпуск 0.19 – 29 ноября 2016 Выпуск 0.20 – 28 декабря 2016 Выпуск 0.21 – 29 января 2017 Выпуск 0.22 – 2 мая 2017 Выпуск 0.23 – 20 июля 2017 Выпуск 0.24 – 11 декабря 2017 Выпуск 0.25 – 3 января 2018 Выпуск 0.26 – 7 мая 2018